파이썬을 이용해서 고급 수학을 응용하는 방법을 알려주는 통계와 미적분 교재이다. 파이썬 통계처리 라이브러리를 살펴보는 것으로 시작해서, 파이썬 언어를 사용하여 기본 함수와 여러 가지 대수 함수를 풀고 변환을 수행하는 등 다양한 수학적 작업을 차례로 수행한다. 이 책을 통해 독자는 기초수학, 선형대수, 확률과 통계 그리고 미분방정식을 포함한 미적분의 문제를 더 효율적이며 효과적으로 계산해낼 수 있을 뿐 아니라 그러한 수학적 개념을 더 잘 이해하고, 나아가 새로운 풀이 방법을 배우고 생각해낼 수 있다.
도전적인 비즈니스 문제를 해결하는 지능형 솔류션을 개발하려는 파이썬 프로그래머에게 적합하다. 마르코프 체인, 오일러 공식 및 룽게-쿠타(Rung-Kutta) 방법 같은 고급 수학적 개념에 대해 잘 알면 이 책에서 설명하는 개념을 더 잘 이해할 수 있다. 이 책은 이러한 기법과 개념을 파이썬으로 구현하는 방법만 다룬다.
Contents
1부 파이썬
1장 파이썬 기초
개요 / 4
흐름 제어 / 4
· IF 문 / 4
· 실습 1.01 조건문과 배수 판정 / 6
· 반복문 / 8
WHILE 반복문 / 8
FOR 반복문 / 9
· 실습 1.02 숫자 추측 게임 / 10
데이터 구조
· 스트링 / 13
· 리스트 / 15
· 실습 1.03 다차원 리스트 / 17
· 튜플 / 19
· 집합 / 20
· 딕셔너리 / 21
· 실습 1.04 쇼핑 카트 계산 / 22
함수와 알고리즘 / 25
· 함수 / 25
· 실습 1.05 최댓값 찾기 / 27
· 순환 / 29
· 실습 1.06 하노이 타워 / 31
· 알고리즘 설계 / 32
· 실습 1.07 N-QUEENS 문제 / 33
평가, 디버깅 그리고 버전 제어 / 38
· 평가 / 38
· 디버깅 / 40
· 실습 1.08 동시성 평가 / 41
· 버전 관리 / 47
· 실습 1.09 GIT과 GITHUB로 버전 관리 / 47
· 프로젝트 1.01 스도쿠 프로그램 / 52
요약 / 55
2장 파이썬과 기본 통계 툴
개요 / 58
과학 계산과 NUMPY 기초 / 58
· NumPy 배열 / 59
· 벡터화 / 64
· 실습 2.01 NUMPY에서 벡터화 연산의 시간 측정 / 65
· 무작위 샘플링 / 68
pandas를 사용한 테이블 데이터 처리 / 71
· DataFrame 객체 초기화 / 72
· 행과 열에 접근하기 / 73
· DataFrame 조작 / 76
· 실습 2.02 데이터 테이블 다루기 / 77
· Pandas 고급 기능 / 82
· 실습 2.03 학생 데이터 세트 / 85
Matplotlib 및 Seaborn을 사용한 데이터 시각화 / 89
· 산점도 / 90
· 선 그래프 / 92
· 막대그래프 / 94
· 히스토그램 / 97
· 히트맵 / 101
· 실습 2.04 확률 분포의 시각화 / 102
· Seaborn과 Pandas에 의한 빠른 시각화 / 106
· 프로젝트 2.01 도시 범죄 데이터 분석 / 111
요약 / 113
3장 파이썬과 통계 툴박스
개요 / 116
통계의 개요 / 116
통계의 데이터 유형 / 117
· 범주형 데이터 / 118
· 실습 3.01 날씨 비율 시각화 / 123
· 수치형 데이터 / 127
· 실습 3.02 Min-Max 스케일링 / 131
· 순서 데이터 / 136
기술 통계 / 137
· 중심 경향 / 139
· 분산 / 139
· 실습 3.03 확률 밀도 함수 시각화 / 140
· 파이썬 관련 기술 통계 / 144
추론 통계 / 149
· t-검정 / 150
· 상관 행렬 / 154
· 실습 3.04 평균의 동일성 판별 및 검정 / 156
· 통계 및 머신러닝 모델 / 160
· 실습 3.05 모델 선택 / 163
파이썬의 기타 통계 도구 / 167
· 프로젝트 3.01 도시 범죄 데이터 재분석 / 169
요약 / 170
2부 선형대수
4장 파이썬과 함수 및 방정식
개요 / 176
함수 / 176
· 자주 사용하는 함수 / 177
· 정의역과 치역 / 179
· 함수의 근과 방정식 / 179
· 함수의 그래프 / 180
· 실습 4.01 그래프로 함수 식별 / 183
함수의 변환 / 187
· 이동 / 187
· 스케일링 / 189
· 실습 4.02 함수 변환 판별 / 191
방정식 / 197
· 대수적 조작 / 197
· 인수분해 / 199
· 파이썬으로 방정식 풀기 / 201
· 실습 4.03 손익분기 분석 / 203
연립방정식 / 207
· 선형 연립방정식 / 208
· 실습 4.04 NumPy를 사용한 행렬 해법 / 213
· 비선형 연립방정식 / 216
· 프로젝트 4.01 다중 변수 손익분기 분석 / 219
요약 / 220
5장 파이썬과 기초수학
개요 / 222
수열과 급수 / 222
· 등차수열 / 224
· 제너레이터 / 227
· 실습 5.01 등차수열과 등차수열의 n번째 항 계산 / 229
· 등비수열 / 232
· 실습 5.02 수열의 다음 항을 찾는 함수 / 235
· 점화수열 / 238
· 실습 5.03 사용자 점화수열 생성 / 239
삼각법 / 242
· 기본적인 삼각함수 / 242
· 실습 5.04 직각삼각형 그리기 / 244
· 역삼각함수 / 248
· 실습 5.05 역삼각함수를 이용해서 보물까지의 가장 짧은 길 찾기 / 251
· 실습 5.06 물체까지의 최적 거리 찾기 / 253
벡터 / 256
· 벡터 연산 / 256
· 실습 5.07 벡터 시각화 / 261
복소수 / 267
· 복소수의 기본 정의 / 267
· 극좌표와 오일러 공식 / 270
· 실습 5.08 복소수의 조건부 곱셈 / 274
· 프로젝트 5.01 급수로 퇴직 연금 계산 / 279
요약 / 280
6장 파이썬과 행렬 및 마르코프 체인
개요 / 282
행렬의 연산 I / 283
· 행렬의 기본 연산 / 283
· 행렬의 속성값 / 286
· 실습 6.01 태양광이 지구에 도달하는 데 걸리는 시간 계산 / 288
· 행렬의 재구성 / 291
· 행렬의 축 / 294
· 실습 6.02 행렬 탐색 / 296
· 행렬의 원소별 곱 / 298
브로드캐스팅 / 300
행렬의 연산 II / 301
· 항등 행렬 / 302
· eye 함수 / 302
· 행렬의 역행렬 / 303
· 논리 연산자 / 304
· 외적 또는 벡터 곱셈 / 304
행렬과 선형 방정식 / 306
· 실습 6.03 행렬로 선형 방정식 풀기 / 307
전이 행렬과 마르코프 체인 / 310
· 마르코프 체인의 기본 개념 / 311
확률적 대 결정적 모델 / 311
상태 전이 다이어그램 / 311
전이 행렬 / 316
· 실습 6.04 상태 전이 확률 찾기 / 317
마르코프 체인과 마르코프 속성 / 321
· 프로젝트 6.01 마르코프 체인을 사용한 텍스트 생성기 / 322
요약 / 323
3부 확률통계
7장 파이썬과 기초 통계
개요 / 328
데이터 준비 / 328
· 데이터 세트 / 329
· 비즈니스 문제 / 330
· 데이터 준비 / 330
· 실습 7.01 문자열을 숫자열로 변환 / 340
기술통계 계산 및 응용 / 342
· 기술 통계의 필요성 / 343
· 통계 개념에 대한 간단한 복습 / 345
· 기술 통계 활용 / 352
· 실습 7.02 기술 통계량 계산 / 356
탐색적 데이터 분석 / 358
· EDA란? / 359
· 단변량 EDA / 360
· 이변량 EDA: 변수 간 관계 탐색 / 371
· 실습 7.03 EDA 실습 / 376
· 프로젝트 7.01 높은 평점을 받는 전략 게임 찾기 / 379
요약 / 380
8장 파이썬과 확률의 기초 및 응용
개요 / 382
임의성, 확률, 확률변수 / 383
· 무작위성과 확률 / 383
· 확률의 기초 개념 / 384
· NumPy를 사용한 시뮬레이션 / 386
· 실습 8.01 복원 및 비복원 추출 / 389
· 상대 빈도 확률 / 392
· 확률변수의 정의 / 395
· 실습 8.02 룰렛 게임의 평균 수익 계산 / 402
이산 확률변수 / 405
· 이산 확률변수의 정의 / 405
· 이항 분포 / 409
· 실습 8.03 무작위 변수가 이항 분포를 따르는지 확인 / 413
연속 확률변수 / 415
· 연속 확률변수 정의 / 415
· 정규분포 / 419
· 정규분포의 몇 가지 특성 / 423
· 실습 8.04 교육 분야에 정규분포 응용 / 429
· 프로젝트 8.01 금융 분야에 정규분포 응용 / 432
요약 / 435
9장 파이썬과 고급 통계
개요 / 438
큰 수의 법칙 / 438
· 파이썬과 무작위 수 / 440
· 실습 9.01 큰 수의 법칙 / 440
· 실습 9.02 시간에 따른 동전 던지기 평균 / 442
· 실제 세계에서 관찰되는 큰 수의 법칙 / 444
· 실습 9.03 빨간색에 계속 베팅할 때 평균 기대 금액 계산 / 445
중심 극한 정리 / 449
· 정규분포와 중심 극한 정리 / 449
· 균등분포로부터 무작위 표본 추출 / 450
· 실습 9.04 균등분포의 표본 평균 / 450
· 지수분포를 따르는 무작위 표본 추출 / 452
· 실습 9.05 지수분포의 표본 평균 / 453
신뢰구간 / 456
· 표본 평균의 신뢰구간 계산 / 457
· 실습 9.06 여론 조사 결과의 신뢰구간 찾기 / 459
· 작은 표본의 신뢰구간 / 460
· 비율에 대한 신뢰구간 / 462
가설 검정 / 464
· 가설 검정의 구성요소 / 464
· Z-검정 / 466
· 실습 9.07 실전 Z-검정 / 466
· 비율 Z-검정 / 469
· T-검정 / 471
· 실습 9.08 T-검정 / 472
· 2-표본 T-검정 또는 A/B 검정 / 475
· 실습 9.09 A/B 검정 / 477
· 선형회귀 / 478
· 실습 9.10 선형회귀 / 479
· 프로젝트 9.01 표준화된 시험 성적 / 483
요약 / 483
4부 미적분
10장 파이썬과 기초 미적분
개요 / 488
미분계수 계산 함수 / 490
· 실습 10.01 함수의 미분계수 계산 / 492
· 접선의 방정식 찾기 / 494
적분 계산 / 497
사다리꼴을 사용한 적분 / 501
· 실습 10.02 곡선 아래의 면적 계산 / 502
적분의 응용 / 504
· 실습 10.03 회전체의 부피 계산 / 506
도함수를 최적화에 응용 / 509
· 실습 10.04 가장 빠른 경로 찾기 / 511
· 실습 10.05 상자 문제 / 513
· 실습 10.06 최적의 캔 / 515
· 실습 10.07 이동 중인 선박 사이의 거리 계산 / 517
· 프로젝트 10.01 원뿔의 최대 부피 / 519
요약 / 520
11장 파이썬과 고급 미적분
개요 / 522
곡선의 길이 / 522
· 실습 11.01 곡선의 길이 계산 / 527
· 실습 11.02 사인 파형의 길이 계산 / 529
나선의 길이 / 530
· 실습 11.03 극좌표로 표현한 나선의 길이 계산 / 533
· 실습 11.04 둥글게 감겨있는 단열재의 길이 계산 / 534
· 실습 11.05 아키메데스 나선의 길이 계산 / 536
곡면의 표면적 / 537
· 공식 / 537
· 실습 11.06 3차원 곡면의 표면적 계산-1부 / 542
· 실습 11.07 3차원 곡면의 표면적 계산-2부 / 544
· 실습 11.08 3차원 곡면의 표면적 계산-3부 / 545
무한급수 / 546
· 다항식 함수 / 546
· 급수 / 547
· 수렴 / 549
· 실습 11.09 의 소수점 10자리까지 계산 / 551
· 실습 11.10 오일러 급수로 값 계산 / 552
· 20세기 공식 / 553
· 수렴 구간 / 553
· 실습 11.11 수렴 구간 결정-1부 / 554
· 실습 11.12 수렴 구간 결정-2부 / 556
· 실습 11.13 상수 찾기 / 557
· 프로젝트 11.01 곡면의 최솟값 찾기 / 558
요약 / 560
12장 파이썬과 미분방정식
개요 / 562
미분방정식 / 562
이자 계산 / 563
· 실습 12.01 이자 계산 / 563
· 실습 12.02 복리 이자 계산-1부 / 566
· 실습 12.03 복리 이자 계산-2부 / 568
· 실습 12.04 복리 이자 계산-3부 / 570
· 실습 12.05 백만장자 되기 / 571
인구 성장 / 573
· 실습 12.06 인구 성장률 계산-1부 / 574
· 실습 12.07 인구 성장률 계산-2부 / 576
방사성 물질의 반감기 / 576
· 실습 12.08 방사성 붕괴 측정 / 577
· 실습 12.09 역사적 유물의 연대 측정 / 578
뉴턴의 냉각 법칙 / 581
· 실습 12.10 사망 시간 계산 / 582
· 실습 12.11 커피의 온도 변화 계산 / 585
혼합물 문제 / 586
· 실습 12.12 혼합물 문제 풀기-1부 / 587
· 실습 12.13 혼합물 문제 풀기-2부 / 589
· 실습 12.14 혼합물 문제 풀기-3부 / 591
· 실습 12.15 혼합물 문제 풀기-4부 / 592
오일러 방법 / 593
· 실습 12.16 오일러 방법으로 미분방정식 풀기 / 594
· 실습 12.17 오일러 방법으로 함숫값 계산 / 598
· 룽게-쿠타 방법 / 599
· 실습 12.18 룽게-쿠타 방법 구현 / 600
· 추적 곡선 / 602
· 실습 12.19 포식자가 피식자를 잡는 위치 계산 / 602
· 실습 12.20 터틀을 사용한 추적 곡선 시각화 / 605
· 위치, 속도 그리고 가속도 / 607
· 실습 12.21 발사체의 지면으로부터 높이 계산 / 607
· 공기 저항이 있는 발사체의 높이 계산 / 612
· 실습 12.22 종단 속도 계산 / 615
· 프로젝트 12.01 물체의 속도와 위치 계산 / 617
요약 / 618
부록
프로젝트 해답
1장 파이썬 기초 / 620
2장 파이썬과 기본 통계 툴 / 626
3장 파이썬과 통계 툴박스 / 632
4장 파이썬과 함수 및 방정식 / 637
5장 파이썬과 기초수학 / 643
6장 파이썬과 행렬 및 마르코프 체인 / 648
7장 파이썬과 기초 통계 / 653
8장 파이썬과 확률의 기초 및 응용 / 657
9장 파이썬과 고급 통계 / 661
10장 파이썬과 기초 미적분 / 667
11장 파이썬과 고급 미적분 / 669
12장 파이썬과 미분방정식 / 675
찾아보기 / 679
Author
Peter Farrell,Alvaro Fuentes,Ajinkya Sudhir Kolhe,Quan Nguyen,Alexander Joseph Sarver,Marios Tsatsos