파이썬을 이용해서 고급 수학을 응용하는 방법을 알려주는 통계와 미적분 교재이다. 파이썬 통계처리 라이브러리를 살펴보는 것으로 시작해서, 파이썬 언어를 사용하여 기본 함수와 여러 가지 대수 함수를 풀고 변환을 수행하는 등 다양한 수학적 작업을 차례로 수행한다.
이 책을 통해 독자는 기초수학, 선형대수, 확률과 통계 그리고 미분방정식을 포함한 미적분의 문제를 더 효율적이며 효과적으로 계산해낼 수 있을 뿐 아니라 그러한 수학적 개념을 더 잘 이해하고, 나아가 새로운 풀이 방법을 배우고 생각해낼 수 있다.
도전적인 비즈니스 문제를 해결하는 지능형 솔류션을 개발하려는 파이썬 프로그래머에게 적합하다. 마르코프 체인, 오일러 공식 및 룽게-쿠타(Rung-Kutta) 방법 같은 고급 수학적 개념에 대해 잘 알면 이 책에서 설명하는 개념을 더 잘 이해할 수 있다. 이 책은 이러한 기법과 개념을 파이썬으로 구현하는 방법만 다룬다.
목차
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