Python極簡講義:一本書入門數據分析與機器學習
定 價:128 元
- 作者:張玉宏
- 出版時間:2020/4/1
- ISBN:9787121387043
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP311.561;TP181
- 頁碼:588
- 紙張:
- 版次:01
- 開本:16開
本書以圖文并茂的方式介紹了Python的基礎內容,并深入淺出地介紹了數據分析和機器學習領域的相關入門知識。第1章至第5章以極簡方式講解了Python的常用語法和使用技巧,包括數據類型與程序控制結構、自建Python模塊與第三方模塊、Python函數和面向對象程序設計等。第6章至第8章介紹了數據分析必備技能,如NumPy、Pandas和Matplotlib。第9章和第10章主要介紹了機器學習的基本概念和機器學習框架sklearn的基本用法。對人工智能相關領域、數據科學相關領域的讀者而言,本書是一本極簡入門手冊。對于從事人工智能產品研發(fā)的工程技術人員,本書亦有一定的參考價值。
張玉宏,大數據分析師(高級),2012年于電子科技大學獲得博士學位,2009—2011年美國西北大學訪問學者,2019—2020年美國IUPUI高級訪問學者,YOCSEF鄭州2019—2020年度副主席。現執(zhí)教于河南工業(yè)大學,主要研究方向為大數據、機器學習。發(fā)表學術論文30余篇,先后撰寫《深度學習之美:AI時代的數據處理與最佳實踐》《品味大數據》等科技圖書7本,參與編寫英文學術專著2部。
第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環(huán)境下的Anaconda安裝 5
1.3.2 conda命令的使用 6
1.3.3 Windows環(huán)境下的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中執(zhí)行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 循環(huán)結構 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 創(chuàng)建模塊包 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的創(chuàng)建 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的區(qū)別 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 監(jiān)督學習 467
9.2.1 感性認識監(jiān)督學習 467
9.2.2 監(jiān)督學習的形式化描述 468
9.2.3 損失函數 470
9.3 非監(jiān)督學習 471
9.4 半監(jiān)督學習 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.3 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-近鄰算法實戰(zhàn) 522
10.4 Logistic回歸 527
10.4.1 為什么需要Logistic回歸 527
10.4.2 Logistic源頭初探 529
10.4.3 Logistic回歸實戰(zhàn) 532
10.5 神經網絡學習算法 536
10.5.1 人工神經網絡的定義 537
10.5.2 神經網絡中的“學習”本質 537
10.5.3 神經網絡結構的設計 540
10.5.4 利用sklearn搭建多層神經網絡 541
10.6 非監(jiān)督學習的代表—k均值聚類 550
10.6.1 聚類的基本概念 551
10.6.2 簇的劃分 552
10.6.3 k均值聚類算法核心 552
10.6.4 k均值聚類算法優(yōu)缺點 554
10.6.5 基于sklearn的k均值聚類算法實戰(zhàn) 555
10.7 本章小結 561
10.8 思考與提高 562