Python極簡講義:一本書入門數(shù)據(jù)分析與機(jī)器學(xué)習(xí)
定 價(jià):128 元
- 作者:張玉宏
- 出版時(shí)間:2020/4/1
- ISBN:9787121387043
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP311.561;TP181
- 頁碼:588
- 紙張:
- 版次:01
- 開本:16開
本書以圖文并茂的方式介紹了Python的基礎(chǔ)內(nèi)容,并深入淺出地介紹了數(shù)據(jù)分析和機(jī)器學(xué)習(xí)領(lǐng)域的相關(guān)入門知識(shí)。第1章至第5章以極簡方式講解了Python的常用語法和使用技巧,包括數(shù)據(jù)類型與程序控制結(jié)構(gòu)、自建Python模塊與第三方模塊、Python函數(shù)和面向?qū)ο蟪绦蛟O(shè)計(jì)等。第6章至第8章介紹了數(shù)據(jù)分析必備技能,如NumPy、Pandas和Matplotlib。第9章和第10章主要介紹了機(jī)器學(xué)習(xí)的基本概念和機(jī)器學(xué)習(xí)框架sklearn的基本用法。對(duì)人工智能相關(guān)領(lǐng)域、數(shù)據(jù)科學(xué)相關(guān)領(lǐng)域的讀者而言,本書是一本極簡入門手冊。對(duì)于從事人工智能產(chǎn)品研發(fā)的工程技術(shù)人員,本書亦有一定的參考價(jià)值。
張玉宏,大數(shù)據(jù)分析師(高級(jí)),2012年于電子科技大學(xué)獲得博士學(xué)位,2009—2011年美國西北大學(xué)訪問學(xué)者,2019—2020年美國IUPUI高級(jí)訪問學(xué)者,YOCSEF鄭州2019—2020年度副主席,F(xiàn)執(zhí)教于河南工業(yè)大學(xué),主要研究方向?yàn)榇髷?shù)據(jù)、機(jī)器學(xué)習(xí)。發(fā)表學(xué)術(shù)論文30余篇,先后撰寫《深度學(xué)習(xí)之美:AI時(shí)代的數(shù)據(jù)處理與最佳實(shí)踐》《品味大數(shù)據(jù)》等科技圖書7本,參與編寫英文學(xué)術(shù)專著2部。
第1章 初識(shí)Python與Jupyter 1
1.1 Python概要 2
1.1.1 為什么要學(xué)習(xí)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 運(yùn)行Python 11
1.4.1 驗(yàn)證Python 11
1.4.2 Python版本的Hello World 12
1.4.3 Python的腳本文件 13
1.4.4 代碼縮進(jìn) 15
1.4.5 代碼注釋 17
1.5 Python中的內(nèi)置函數(shù) 17
1.6 文學(xué)化編程—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中的魔法函數(shù) 31
1.7.1 %lsmagic函數(shù) 31
1.7.2 %matplotlib inline函數(shù) 32
1.7.3 %timeit函數(shù) 32
1.7.4 %%writefile函數(shù) 33
1.7.5 其他常用的魔法函數(shù) 34
1.7.6 在Jupyter中執(zhí)行shell命令 35
1.8 本章小結(jié) 35
1.9 思考與提高 36
第2章 數(shù)據(jù)類型與程序控制結(jié)構(gòu) 40
2.1 為什么需要不同的數(shù)據(jù)類型 41
2.2 Python中的基本數(shù)據(jù)類型 42
2.2.1 數(shù)值型(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 程序控制結(jié)構(gòu) 67
2.3.1 回顧那段難忘的歷史 67
2.3.2 順序結(jié)構(gòu) 69
2.3.3 選擇結(jié)構(gòu) 70
2.3.4 循環(huán)結(jié)構(gòu) 74
2.4 高效的推導(dǎo)式 80
2.4.1 列表推導(dǎo)式 80
2.4.2 字典推導(dǎo)式 83
2.4.3 集合推導(dǎo)式 83
2.5 本章小結(jié) 84
2.6 思考與提高 84
第3章 自建Python模塊與第三方模塊 90
3.1 導(dǎo)入Python標(biāo)準(zhǔn)庫 91
3.2 編寫自己的模塊 93
3.3 模塊的搜索路徑 97
3.4 創(chuàng)建模塊包 100
3.5 常用的內(nèi)建模塊 103
3.5.1 collection模塊 103
3.5.2 datetime模塊 110
3.5.3 json模塊 115
3.5.4 random模塊 118
3.6 本章小結(jié) 121
3.7 思考與提高 122
第4章 Python函數(shù) 124
4.1 Python中的函數(shù) 125
4.1.1 函數(shù)的定義 125
4.1.2 函數(shù)返回多個(gè)值 127
4.1.3 函數(shù)文檔的構(gòu)建 128
4.2 函數(shù)參數(shù)的“花式”傳遞 132
4.2.1 關(guān)鍵字參數(shù) 132
4.2.2 可變參數(shù) 133
4.2.3 默認(rèn)參數(shù) 136
4.2.4 參數(shù)序列的打包與解包 138
4.2.5 傳值還是傳引用 142
4.3 函數(shù)的遞歸 146
4.3.1 感性認(rèn)識(shí)遞歸 146
4.3.2 思維與遞歸思維 148
4.3.3 遞歸調(diào)用的函數(shù) 149
4.4 函數(shù)式編程的高階函數(shù) 151
4.4.1 lambda表達(dá)式 152
4.4.2 filter()函數(shù) 153
4.4.3 map()函數(shù) 155
4.4.4 reduce()函數(shù) 157
4.4.5 sorted()函數(shù) 158
4.5 本章小結(jié) 159
4.6 思考與提高 160
第5章 Python高級(jí)特性 165
5.1 面向?qū)ο蟪绦蛟O(shè)計(jì) 166
5.1.1 面向過程與面向?qū)ο笾q 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 感性認(rèn)識(shí)程序中的異常 194
5.4.2 異常處理的三步走 195
5.5 錯(cuò)誤調(diào)試 197
5.5.1 利用print()輸出觀察變量 197
5.5.2 assert斷言 198
5.6 本章小結(jié) 201
5.7 思考與提高 202
第6章 NumPy向量計(jì)算 204
6.1 為何需要NumPy 205
6.2 如何導(dǎo)入NumPy 205
6.3 生成NumPy數(shù)組 206
6.3.1 利用序列生成 206
6.3.2 利用特定函數(shù)生成 207
6.3.3 Numpy數(shù)組的其他常用函數(shù) 209
6.4 N維數(shù)組的屬性 212
6.5 NumPy數(shù)組中的運(yùn)算 215
6.5.1 向量運(yùn)算 216
6.5.2 算術(shù)運(yùn)算 216
6.5.3 逐元素運(yùn)算與張量點(diǎn)乘運(yùn)算 218
6.6 愛因斯坦求和約定 222
6.6.1 不一樣的標(biāo)記法 222
6.6.2 NumPy中的einsum()方法 224
6.7 NumPy中的“軸”方向 231
6.8 操作數(shù)組元素 234
6.8.1 通過索引訪問數(shù)組元素 234
6.8.2 NumPy中的切片訪問 236
6.8.3 二維數(shù)組的轉(zhuǎn)置與展平 238
6.9 NumPy中的廣播 239
6.10 NumPy數(shù)組的高級(jí)索引 242
6.10.1 “花式”索引 242
6.10.2 布爾索引 247
6.11 數(shù)組的堆疊操作 249
6.11.1 水平方向堆疊hstack() 250
6.11.2 垂直方向堆疊vstack() 251
6.11.3 深度方向堆疊hstack() 252
6.11.4 列堆疊與行堆疊 255
6.11.5 數(shù)組的分割操作 257
6.12 NumPy中的隨機(jī)數(shù)模塊 264
6.13 本章小結(jié) 266
6.14 思考與提高 267
第7章 Pandas數(shù)據(jù)分析 271
7.1 Pandas簡介 272
7.2 Pandas的安裝 272
7.3 Series類型數(shù)據(jù) 273
7.3.1 Series的創(chuàng)建 273
7.3.2 Series中的數(shù)據(jù)訪問 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 類型數(shù)據(jù) 289
7.4.1 構(gòu)建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的聚合和分組運(yùn)算 325
7.5.8 DataFrame的透視表 334
7.5.9 DataFrame的類SQL操作 339
7.5.10 DataFrame中的數(shù)據(jù)清洗方法 341
7.6 泰坦尼克幸存者數(shù)據(jù)預(yù)處理 342
7.6.1 數(shù)據(jù)集簡介 342
7.6.2 數(shù)據(jù)集的拼接 344
7.6.3 缺失值的處理 350
7.7 本章小結(jié) 353
7.8 思考與提高 353
第8章 Matplotlib與Seaborn可視化分析 365
8.1 Matplotlib與圖形繪制 366
8.2 繪制簡單圖形 366
8.3 pyplot的高級(jí)功能 371
8.3.1 添加圖例與注釋 371
8.3.2 設(shè)置圖形標(biāo)題及坐標(biāo)軸 374
8.3.3 添加網(wǎng)格線 378
8.3.4 繪制多個(gè)子圖 380
8.3.5 Axes與Subplot的區(qū)別 382
8.4 散點(diǎn)圖 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協(xié)作繪圖—以谷歌流感趨勢數(shù)據(jù)為例 416
8.10.1 谷歌流感趨勢數(shù)據(jù)描述 416
8.10.2 導(dǎo)入數(shù)據(jù)與數(shù)據(jù)預(yù)處理 417
8.10.3 繪制時(shí)序曲線圖 421
8.10.4 選擇合適的數(shù)據(jù)可視化表達(dá) 423
8.10.5 基于條件判斷的圖形繪制 427
8.10.6 繪制多個(gè)子圖 430
8.11 驚艷的Seaborn 431
8.11.1 pairplot(對(duì)圖) 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 本章小結(jié) 450
8.13 思考與提高 450
第9章 機(jī)器學(xué)習(xí)初步 459
9.1 機(jī)器學(xué)習(xí)定義 460
9.1.1 什么是機(jī)器學(xué)習(xí) 460
9.1.2 機(jī)器學(xué)習(xí)的三個(gè)步驟 461
9.1.3 傳統(tǒng)編程與機(jī)器學(xué)習(xí)的差別 464
9.1.4 為什么機(jī)器學(xué)習(xí)不容易 465
9.2 監(jiān)督學(xué)習(xí) 467
9.2.1 感性認(rèn)識(shí)監(jiān)督學(xué)習(xí) 467
9.2.2 監(jiān)督學(xué)習(xí)的形式化描述 468
9.2.3 損失函數(shù) 470
9.3 非監(jiān)督學(xué)習(xí) 471
9.4 半監(jiān)督學(xué)習(xí) 473
9.5 機(jī)器學(xué)習(xí)的哲學(xué)視角 474
9.6 模型性能評(píng)估 476
9.6.1 經(jīng)驗(yàn)誤差與測試誤差 476
9.6.2 過擬合與欠擬合 477
9.6.3 模型選擇與數(shù)據(jù)擬合 479
9.7 性能度量 480
9.7.1 二分類的混淆矩陣 480
9.7.2 查全率、查準(zhǔn)率與F1分?jǐn)?shù) 481
9.7.3 P-R曲線 484
9.7.4 ROC曲線 485
9.7.5 AUC 489
9.8 本章小結(jié) 489
9.9 思考與提高 490
第10章 sklearn與經(jīng)典機(jī)器學(xué)習(xí)算法 492
10.1 機(jī)器學(xué)習(xí)的利器—sklearn 493
10.1.1 sklearn簡介 494
10.1.3 sklearn的安裝 496
10.2 線性回歸 497
10.2.1 線性回歸的概念 497
10.2.2 使用sklearn實(shí)現(xiàn)波士頓房價(jià)預(yù)測 499
10.3 k-近鄰算法 516
10.3.1 算法簡介 516
10.3.2 k值的選取 518
10.3.3 特征數(shù)據(jù)的歸一化 519
10.3.4 鄰居距離的度量 521
10.3.5 分類原則的制定 522
10.3.6 基于sklearn的k-近鄰算法實(shí)戰(zhàn) 522
10.4 Logistic回歸 527
10.4.1 為什么需要Logistic回歸 527
10.4.2 Logistic源頭初探 529
10.4.3 Logistic回歸實(shí)戰(zhàn) 532
10.5 神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法 536
10.5.1 人工神經(jīng)網(wǎng)絡(luò)的定義 537
10.5.2 神經(jīng)網(wǎng)絡(luò)中的“學(xué)習(xí)”本質(zhì) 537
10.5.3 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計(jì) 540
10.5.4 利用sklearn搭建多層神經(jīng)網(wǎng)絡(luò) 541
10.6 非監(jiān)督學(xué)習(xí)的代表—k均值聚類 550
10.6.1 聚類的基本概念 551
10.6.2 簇的劃分 552
10.6.3 k均值聚類算法核心 552
10.6.4 k均值聚類算法優(yōu)缺點(diǎn) 554
10.6.5 基于sklearn的k均值聚類算法實(shí)戰(zhàn) 555
10.7 本章小結(jié) 561
10.8 思考與提高 562