第1章 初識Python與Jupyter 1
1.1 Python概要 2
1.1.1 為什麼要學習Python 2
1.1.2 Python中常用的庫 2
1.2 Python的版本之爭 4
1.3 安裝Anaconda 5
1.3.1 Linux環境下的Anaconda安裝 5
1.3.2 conda命令的使用 6
1.3.3 Windows環境下的Anaconda安裝 7
1.4 運行Python 11
1.4.1 驗證Python 11
1.4.2 Python版本的Hello World 12
1.4.3 Python的腳本文件 13
1.4.4 代碼縮進 15
1.4.5 代碼注釋 17
1.5 Python中的內置函數 17
1.6 文學化編程—Jupyter 20
1.6.1 Jupyter的由來 20
1.6.2 Jupyter的安裝 21
1.6.3 Jupyter的使用 23
1.6.4 Markdown編輯器 26
1.7 Jupyter中的魔法函數 31
1.7.1 %lsmagic函數 31
1.7.2 %matplotlib inline函數 32
1.7.3 %timeit函數 32
1.7.4 %%writefile函數 33
1.7.5 其他常用的魔法函數 34
1.7.6 在Jupyter中執行shell命令 35
1.8 本章小結 35
1.9 思考與提高 36
第2章 數據類型與程序控製結構 40
2.1 為什麼需要不同的數據類型 41
2.2 Python中的基本數據類型 42
2.2.1 數值型(Number) 42
2.2.2 布爾類型(Boolean) 45
2.2.3 字符串型(String) 45
2.2.4 列錶(List) 49
2.2.5 元組(Tuple) 59
2.2.6 字典(Dictionary) 62
2.2.7 集閤(Set) 65
2.3 程序控製結構 67
2.3.1 迴顧那段難忘的曆史 67
2.3.2 順序結構 69
2.3.3 選擇結構 70
2.3.4 循環結構 74
2.4 高效的推導式 80
2.4.1 列錶推導式 80
2.4.2 字典推導式 83
2.4.3 集閤推導式 83
2.5 本章小結 84
2.6 思考與提高 84
第3章 自建Python模塊與第三方模塊 90
3.1 導入Python標準庫 91
3.2 編寫自己的模塊 93
3.3 模塊的搜索路徑 97
3.4 創建模塊包 100
3.5 常用的內建模塊 103
3.5.1 collection模塊 103
3.5.2 datetime模塊 110
3.5.3 json模塊 115
3.5.4 random模塊 118
3.6 本章小結 121
3.7 思考與提高 122
第4章 Python函數 124
4.1 Python中的函數 125
4.1.1 函數的定義 125
4.1.2 函數返迴多個值 127
4.1.3 函數文檔的構建 128
4.2 函數參數的“花式”傳遞 132
4.2.1 關鍵字參數 132
4.2.2 可變參數 133
4.2.3 默認參數 136
4.2.4 參數序列的打包與解包 138
4.2.5 傳值還是傳引用 142
4.3 函數的遞歸 146
4.3.1 感性認識遞歸 146
4.3.2 思維與遞歸思維 148
4.3.3 遞歸調用的函數 149
4.4 函數式編程的高階函數 151
4.4.1 lambda錶達式 152
4.4.2 filter()函數 153
4.4.3 map()函數 155
4.4.4 reduce()函數 157
4.4.5 sorted()函數 158
4.5 本章小結 159
4.6 思考與提高 160
第5章 Python高級特性 165
5.1 麵嚮對象程序設計 166
5.1.1 麵嚮過程與麵嚮對象之辯 166
5.1.2 類的定義與使用 169
5.1.3 類的繼承 173
5.2 生成器與迭代器 176
5.2.1 生成器 176
5.2.2 迭代器 183
5.3 文件操作 187
5.3.1 打開文件 187
5.3.2 讀取一行與讀取全部行 191
5.3.3 寫入文件 193
5.4 異常處理 193
5.4.1 感性認識程序中的異常 194
5.4.2 異常處理的三步走 195
5.5 錯誤調試 197
5.5.1 利用print()輸齣觀察變量 197
5.5.2 assert斷言 198
5.6 本章小結 201
5.7 思考與提高 202
第6章 NumPy嚮量計算 204
6.1 為何需要NumPy 205
6.2 如何導入NumPy 205
6.3 生成NumPy數組 206
6.3.1 利用序列生成 206
6.3.2 利用特定函數生成 207
6.3.3 Numpy數組的其他常用函數 209
6.4 N維數組的屬性 212
6.5 NumPy數組中的運算 215
6.5.1 嚮量運算 216
6.5.2 算術運算 216
6.5.3 逐元素運算與張量點乘運算 218
6.6 愛因斯坦求和約定 222
6.6.1 不一樣的標記法 222
6.6.2 NumPy中的einsum()方法 224
6.7 NumPy中的“軸”方嚮 231
6.8 操作數組元素 234
6.8.1 通過索引訪問數組元素 234
6.8.2 NumPy中的切片訪問 236
6.8.3 二維數組的轉置與展平 238
6.9 NumPy中的廣播 239
6.10 NumPy數組的高級索引 242
6.10.1 “花式”索引 242
6.10.2 布爾索引 247
6.11 數組的堆疊操作 249
6.11.1 水平方嚮堆疊hstack() 250
6.11.2 垂直方嚮堆疊vstack() 251
6.11.3 深度方嚮堆疊hstack() 252
6.11.4 列堆疊與行堆疊 255
6.11.5 數組的分割操作 257
6.12 NumPy中的隨機數模塊 264
6.13 本章小結 266
6.14 思考與提高 267
第7章 Pandas數據分析 271
7.1 Pandas簡介 272
7.2 Pandas的安裝 272
7.3 Series類型數據 273
7.3.1 Series的創建 273
7.3.2 Series中的數據訪問 277
7.3.3 Series中的嚮量化操作與布爾索引 280
7.3.4 Series中的切片操作 283
7.3.5 Series中的缺失值 284
7.3.6 Series中的刪除與添加操作 286
7.3.7 Series中的name屬性 288
7.4 DataFrame 類型數據 289
7.4.1 構建DataFrame 289
7.4.2 訪問DataFrame中的列與行 293
7.4.3 DataFrame中的刪除操作 298
7.4.4 DataFrame中的“軸”方嚮 301
7.4.5 DataFrame中的添加操作 303
7.5 基於Pandas的文件讀取與分析 310
7.5.1 利用Pandas讀取文件 311
7.5.2 DataFrame中的常用屬性 312
7.5.3 DataFrame中的常用方法 314
7.5.4 DataFrame的條件過濾 318
7.5.5 DataFrame的切片操作 320
7.5.6 DataFrame的排序操作 323
7.5.7 Pandas的聚閤和分組運算 325
7.5.8 DataFrame的透視錶 334
7.5.9 DataFrame的類SQL操作 339
7.5.10 DataFrame中的數據清洗方法 341
7.6 泰坦尼剋幸存者數據預處理 342
7.6.1 數據集簡介 342
7.6.2 數據集的拼接 344
7.6.3 缺失值的處理 350
7.7 本章小結 353
7.8 思考與提高 353
第8章 Matplotlib與Seaborn可視化分析 365
8.1 Matplotlib與圖形繪製 366
8.2 繪製簡單圖形 366
8.3 pyplot的高級功能 371
8.3.1 添加圖例與注釋 371
8.3.2 設置圖形標題及坐標軸 374
8.3.3 添加網格綫 378
8.3.4 繪製多個子圖 380
8.3.5 Axes與Subplot的區彆 382
8.4 散點圖 388
8.5 條形圖與直方圖 392
8.5.1 垂直條形圖 392
8.5.2 水平條形圖 394
8.5.3 並列條形圖 395
8.5.4 疊加條形圖 400
8.5.5 直方圖 402
8.6 餅圖 407
8.7 箱形圖 409
8.8 誤差條 411
8.9 繪製三維圖形 413
8.10 與Pandas協作繪圖—以榖歌流感趨勢數據為例 416
8.10.1 榖歌流感趨勢數據描述 416
8.10.2 導入數據與數據預處理 417
8.10.3 繪製時序麯綫圖 421
8.10.4 選擇閤適的數據可視化錶達 423
8.10.5 基於條件判斷的圖形繪製 427
8.10.6 繪製多個子圖 430
8.11 驚艷的Seaborn 431
8.11.1 pairplot(對圖) 432
8.11.2 heatmap(熱力圖) 434
8.11.3 boxplot(箱形圖) 436
8.11.4 violin plot(小提琴圖) 442
8.11.5 Density Plot(密度圖) 446
8.12 本章小結 450
8.13 思考與提高 450
第9章 機器學習初步 459
9.1 機器學習定義 460
9.1.1 什麼是機器學習 460
9.1.2 機器學習的三個步驟 461
9.1.3 傳統編程與機器學習的差彆 464
9.1.4 為什麼機器學習不容易 465
9.2 監督學習 467
9.2.1 感性認識監督學習 467
9.2.2 監督學習的形式化描述 468
9.2.3 損失函數 470
9.3 非監督學習 471
9.4 半監督學習 473
9.5 機器學習的哲學視角 474
9.6 模型性能評估 476
9.6.1 經驗誤差與測試誤差 476
9.6.2 過擬閤與欠擬閤 477
9.6.3 模型選擇與數據擬閤 479
9.7 性能度量 480
9.7.1 二分類的混淆矩陣 480
9.7.2 查全率、查準率與F1分數 481
9.7.3 P-R麯綫 484
9.7.4 ROC麯綫 485
9.7.5 AUC 489
9.8 本章小結 489
9.9 思考與提高 490
第10章 sklearn與經典機器學習算法 492
10.1 機器學習的利器—sklearn 493
10.1.1 sklearn簡介 494
10.1.2 sklearn的安裝 496
10.2 綫性迴歸 497
10.2.1 綫性迴歸的概念 497
10.2.2 使用sklearn實現波士頓房價預測 499
10.3 k-近鄰算法 516
10.3.1 算法簡介 516
10.3.2 k值的選取 518
10.3.3 特徵數據的歸一化 519
10.3.4 鄰居距離的度量 521
10.3.5 分類原則的製定 522
10.3.6 基於sklearn的k-近鄰算法實戰 522
10.4 Logistic迴歸 527
10.4.1 為什麼需要Logistic迴歸 527
10.4.2 Logistic源頭初探 529
10.4.3 Logistic迴歸實戰 532
10.5 神經網絡學習算法 536
10.5.1 人工神經網絡的定義 537
10.5.2 神經網絡中的“學習”本質 537
10.5.3 神經網絡結構的設計 540
10.5.4 利用sklearn搭建多層神經網絡 541
10.6 非監督學習的代錶—k均值聚類 550
10.6.1 聚類的基本概念 551
10.6.2 簇的劃分 552
10.6.3 k均值聚類算法核心 552
10.6.4 k均值聚類算法優缺點 554
10.6.5 基於sklearn的k均值聚類算法實戰 555
10.7 本章小結 561
10.8 思考與提高 562
· · · · · · (
收起)