Python數(shù)據(jù)科學(xué)手冊
定 價(jià):109 元
叢書名:圖靈程序設(shè)計(jì)叢書
- 作者:[美]杰克·萬托布拉斯(Jake VanderPlas)
- 出版時(shí)間:2018/2/1
- ISBN:9787115475893
- 出 版 社:人民郵電出版社
- 中圖法分類:TP311.561-62
- 頁碼:448
- 紙張:
- 版次:01
- 開本:16開
《Python數(shù)據(jù)科學(xué)手冊》是對以數(shù)據(jù)深度需求為中心的科學(xué)、研究以及針對計(jì)算和統(tǒng)計(jì)方法的參考書。本書共五章,每章介紹一到兩個(gè)Python數(shù)據(jù)科學(xué)中的重點(diǎn)工具包。首先從IPython和Jupyter開始,它們提供了數(shù)據(jù)科學(xué)家需要的計(jì)算環(huán)境;第 2章講解能提供ndarray對象的NumPy,它可以用Python高效地存儲(chǔ)和操作大型數(shù)組;第3章主要涉及提供DataFrame對象的Pandas,它可以用Python高效地存儲(chǔ)和操作帶標(biāo)簽的/列式數(shù)據(jù);第4章的主角是Matplotlib,它為Python提供了許多數(shù)據(jù)可視化功能;第5章以Scikit-Learn為主,這個(gè)程序庫為重要的機(jī)器學(xué)習(xí)算法提供了高效整潔的Python版實(shí)現(xiàn)。
《Python數(shù)據(jù)科學(xué)手冊》適合有編程背景,并打算將開源Python工具用作分析、操作、可視化以及學(xué)習(xí)數(shù)據(jù)的數(shù)據(jù)科學(xué)研究人員。
Python語言擁有大量可用于存儲(chǔ)、操作和洞察數(shù)據(jù)的程序庫,已然成為深受數(shù)據(jù)科學(xué)研究人員推崇的工具。本書以IPython、NumPy、Pandas、Matplotlib和Scikit-Learn這5個(gè)能完成數(shù)據(jù)科學(xué)大部分工作的基礎(chǔ)工具為主,從實(shí)戰(zhàn)角度出發(fā),講授如何清洗和可視化數(shù)據(jù)、如何用數(shù)據(jù)建立各種統(tǒng)計(jì)學(xué)或機(jī)器學(xué)習(xí)模型等常見數(shù)據(jù)科學(xué)任務(wù),旨在讓各領(lǐng)域與數(shù)據(jù)處理相關(guān)的工作人員具備發(fā)現(xiàn)問題、解決問題的能力。
·IPython和Jupyter:為使用Python提供計(jì)算環(huán)境
·NumPy:用ndarray實(shí)現(xiàn)高維數(shù)組的高效存儲(chǔ)與操作
·Pandas:用DataFrame實(shí)現(xiàn)帶標(biāo)簽/列式數(shù)據(jù)的高效存儲(chǔ)與操作
·Matplotlib:實(shí)現(xiàn)各種數(shù)據(jù)可視化
·Scikit-Learn:用高效整潔的Python實(shí)現(xiàn)重要的機(jī)器學(xué)習(xí)算法
Jake VanderPlas是Python科學(xué)棧的深度用戶和開發(fā)人員,目前是華盛頓大學(xué)eScience學(xué)院物理科學(xué)研究院院長,研究方向?yàn)樘煳膶W(xué)。同時(shí),他還為很多領(lǐng)域的科學(xué)家提供建議和咨詢。
譯者序 xiii
前言 xv
第 1 章 IPython:超越Python 1
1.1 shell還是Notebook 1
1.1.1 啟動(dòng)IPython shell 2
1.1.2 啟動(dòng)Jupyter Notebook 2
1.2 IPython的幫助和文檔 3
1.2.1 用符號 獲取文檔 3
1.2.2 通過符號 獲取源代碼 4
1.2.3 用Tab補(bǔ)全的方式探索模塊 5
1.3 IPython shell中的快捷鍵 7
1.3.1 導(dǎo)航快捷鍵 7
1.3.2 文本輸入快捷鍵 7
1.3.3 命令歷史快捷鍵 8
1.3.4 其他快捷鍵 9
1.4 IPython魔法命令 9
1.4.1 粘貼代碼塊:%paste和%cpaste 9
1.4.2 執(zhí)行外部代碼:%run 10
1.4.3 計(jì)算代碼運(yùn)行時(shí)間:%timeit 11
1.4.4 魔法函數(shù)的幫助: 、%magic 和%lsmagic 11
1.5 輸入和輸出歷史 12
1.5.1 IPython的輸入和輸出對象 12
1.5.2 下劃線快捷鍵和以前的輸出 13
1.5.3 禁止輸出 13
1.5.4 相關(guān)的魔法命令 13
1.6 IPython和shell命令 14
1.6.1 shell快速入門 14
1.6.2 IPython中的shell命令 15
1.6.3 在shell中傳入或傳出值 15
1.7 與shell相關(guān)的魔法命令 16
1.8 錯(cuò)誤和調(diào)試 17
1.8.1 控制異常:%xmode 17
1.8.2 調(diào)試:當(dāng)閱讀軌跡追溯不足以解決問題時(shí) 19
1.9 代碼的分析和計(jì)時(shí) 21
1.9.1 代碼段計(jì)時(shí):%timeit和%time 22
1.9.2 分析整個(gè)腳本:%prun 23
1.9.3 用%lprun進(jìn)行逐行分析 24
1.9.4 用%memit和%mprun進(jìn)行內(nèi)存分析 25
1.10 IPython參考資料 26
1.10.1 網(wǎng)絡(luò)資源 26
1.10.2 相關(guān)圖書 27
第 2 章 NumPy入門 28
2.1 理解Python中的數(shù)據(jù)類型 29
2.1.1 Python整型不僅僅是一個(gè)整型 30
2.1.2 Python列表不僅僅是一個(gè)列表 31
2.1.3 Python中的固定類型數(shù)組 32
2.1.4 從Python列表創(chuàng)建數(shù)組 32
2.1.5 從頭創(chuàng)建數(shù)組 33
2.1.6 NumPy標(biāo)準(zhǔn)數(shù)據(jù)類型 34
2.2 NumPy數(shù)組基礎(chǔ) 35
2.2.1 NumPy數(shù)組的屬性 36
2.2.2 數(shù)組索引:獲取單個(gè)元素 37
2.2.3 數(shù)組切片:獲取子數(shù)組 38
2.2.4 數(shù)組的變形 41
2.2.5 數(shù)組拼接和分裂 42
2.3 NumPy數(shù)組的計(jì)算:通用函數(shù) 44
2.3.1 緩慢的循環(huán) 44
2.3.2 通用函數(shù)介紹 45
2.3.3 探索NumPy的通用函數(shù) 46
2.3.4 通用函數(shù)特性 49
2.3.5 通用函數(shù):更多的信息 51
2.4 聚合:*小值、*大值和其他值 51
2.4.1 數(shù)組值求和 51
2.4.2 *小值和*大值 52
2.4.3 示例:美國總統(tǒng)的身高是多少 54
2.5 數(shù)組的計(jì)算:廣播 55
2.5.1 廣播的介紹 55
2.5.2 廣播的規(guī)則 57
2.5.3 廣播的實(shí)際應(yīng)用 60
2.6 比較、掩碼和布爾邏輯 61
2.6.1 示例:統(tǒng)計(jì)下雨天數(shù) 61
2.6.2 和通用函數(shù)類似的比較操作 62
2.6.3 操作布爾數(shù)組 64
2.6.4 將布爾數(shù)組作為掩碼 66
2.7 花哨的索引 69
2.7.1 探索花哨的索引 69
2.7.2 組合索引 70
2.7.3 示例:選擇隨機(jī)點(diǎn) 71
2.7.4 用花哨的索引修改值 72
2.7.5 示例:數(shù)據(jù)區(qū)間劃分 73
2.8 數(shù)組的排序 75
2.8.1 NumPy中的快速排序:np.sort和np.argsort 76
2.8.2 部分排序:分隔 77
2.8.3 示例:K個(gè)*近鄰 78
2.9 結(jié)構(gòu)化數(shù)據(jù):NumPy的結(jié)構(gòu)化數(shù)組 81
2.9.1 生成結(jié)構(gòu)化數(shù)組 83
2.9.2 更高 級的復(fù)合類型 84
2.9.3 記錄數(shù)組:結(jié)構(gòu)化數(shù)組的扭轉(zhuǎn) 84
2.9.4 關(guān)于Pandas 85
第3 章 Pandas數(shù)據(jù)處理 86
3.1 安裝并使用Pandas 86
3.2 Pandas對象簡介 87
3.2.1 Pandas的Series對象 87
3.2.2 Pandas的DataFrame對象 90
3.2.3 Pandas的Index對象 93
3.3 數(shù)據(jù)取值與選擇 95
3.3.1 Series數(shù)據(jù)選擇方法 95
3.3.2 DataFrame數(shù)據(jù)選擇方法 98
3.4 Pandas數(shù)值運(yùn)算方法 102
3.4.1 通用函數(shù):保留索引 102
3.4.2 通用函數(shù):索引對齊 103
3.4.3 通用函數(shù):DataFrame與Series的運(yùn)算 105
3.5 處理缺失值 106
3.5.1 選擇處理缺失值的方法 106
3.5.2 Pandas的缺失值 107
3.5.3 處理缺失值 110
3.6 層級索引 113
3.6.1 多級索引Series 113
3.6.2 多級索引的創(chuàng)建方法 116
3.6.3 多級索引的取值與切片 119
3.6.4 多級索引行列轉(zhuǎn)換 121
3.6.5 多級索引的數(shù)據(jù)累計(jì)方法 124
3.7 合并數(shù)據(jù)集:Concat與Append操作 125
3.7.1 知識(shí)回顧:NumPy數(shù)組的合并 126
3.7.2 通過pd.concat實(shí)現(xiàn)簡易合并 126
3.8 合并數(shù)據(jù)集:合并與連接 129
3.8.1 關(guān)系代數(shù) 129
3.8.2 數(shù)據(jù)連接的類型 130
3.8.3 設(shè)置數(shù)據(jù)合并的鍵 132
3.8.4 設(shè)置數(shù)據(jù)連接的集合操作規(guī)則 134
3.8.5 重復(fù)列名:suffixes參數(shù) 135
3.8.6 案例:美國各州的統(tǒng)計(jì)數(shù)據(jù) 136
3.9 累計(jì)與分組 140
3.9.1 行星數(shù)據(jù) 140
3.9.2 Pandas的簡單累計(jì)功能 141
3.9.3 GroupBy:分割、應(yīng)用和組合 142
3.10 數(shù)據(jù)透視表 150
3.10.1 演示數(shù)據(jù)透視表 150
3.10.2 手工制作數(shù)據(jù)透視表 151
3.10.3 數(shù)據(jù)透視表語法 151
3.10.4 案例:美國人的生日 153
3.11 向量化字符串操作 157
3.11.1 Pandas字符串操作簡介 157
3.11.2 Pandas字符串方法列表 159
3.11.3 案例:食譜數(shù)據(jù)庫 163
3.12 處理時(shí)間序列 166
3.12.1 Python的日期與時(shí)間工具 166
3.12.2 Pandas時(shí)間序列:用時(shí)間作索引 169
3.12.3 Pandas時(shí)間序列數(shù)據(jù)結(jié)構(gòu) 170
3.12.4 時(shí)間頻率與偏移量 172
3.12.5 重新取樣、遷移和窗口 173
3.12.6 更多學(xué)習(xí)資料 178
3.12.7 案例:美國西雅圖自行車統(tǒng)計(jì)數(shù)據(jù)的可視化 179
3.13 高性能Pandas:eval()與query() 184
3.13.1 query()與eval()的設(shè)計(jì)動(dòng)機(jī):復(fù)合代數(shù)式 184
3.13.2 用pandas.eval()實(shí)現(xiàn)高性能運(yùn)算 185
3.13.3 用DataFrame.eval()實(shí)現(xiàn)列間運(yùn)算 187
3.13.4 DataFrame.query()方法 188
3.13.5 性能決定使用時(shí)機(jī) 189
3.14 參考資料 189
第4 章 Matplotlib數(shù)據(jù)可視化 191
4.1 Matplotlib常用技巧 192
4.1.1 導(dǎo)入Matplotlib 192
4.1.2 設(shè)置繪圖樣式 192
4.1.3 用不用show()?如何顯示圖形 192
4.1.4 將圖形保存為文件 194
4.2 兩種畫圖接口 195
4.2.1 MATLAB風(fēng)格接口 195
4.2.2 面向?qū)ο蠼涌? 196
4.3 簡易線形圖 197
4.3.1 調(diào)整圖形:線條的顏色與風(fēng)格 199
4.3.2 調(diào)整圖形:坐標(biāo)軸上下限 200
4.3.3 設(shè)置圖形標(biāo)簽 203
4.4 簡易散點(diǎn)圖 204
4.4.1 用plt.plot畫散點(diǎn)圖 205
4.4.2 用plt.scatter畫散點(diǎn)圖 206
4.4.3 plot與scatter:效率對比 208
4.5 可視化異常處理 208
4.5.1 基本誤差線 209
4.5.2 連續(xù)誤差 210
4.6 密度圖與等高線圖 211
4.7 頻次直方圖、數(shù)據(jù)區(qū)間劃分和分布密度 215
4.8 配置圖例 219
4.8.1 選擇圖例顯示的元素 221
4.8.2 在圖例中顯示不同尺寸的點(diǎn) 222
4.8.3 同時(shí)顯示多個(gè)圖例 223
4.9 配置顏色條 224
4.9.1 配置顏色條 224
4.9.2 案例:手寫數(shù)字 228
4.10 多子圖 230
4.10.1 plt.axes:手動(dòng)創(chuàng)建子圖 230
4.10.2 plt.subplot:簡易網(wǎng)格子圖 231
4.10.3 plt.subplots:用一行代碼創(chuàng)建網(wǎng)格 233
4.10.4 plt.GridSpec:實(shí)現(xiàn)更復(fù)雜的排列方式 234
4.11 文字與注釋 235
4.11.1 案例:節(jié)假日對美國出生率的影響 236
4.11.2 坐標(biāo)變換與文字位置 237
4.11.3 箭頭與注釋 239
4.12 自定義坐標(biāo)軸刻度 241
4.12.1 主要刻度與次要刻度 242
4.12.2 隱藏刻度與標(biāo)簽 243
4.12.3 增減刻度數(shù)量 244
4.12.4 花哨的刻度格式 245
4.12.5 格式生成器與定位器小結(jié) 247
4.13 Matplotlib自定義:配置文件與樣式表 248
4.13.1 手動(dòng)配置圖形 248
4.13.2 修改默認(rèn)配置:rcParams 249
4.13.3 樣式表 251
4.14 用Matplotlib畫三維圖 255
4.14.1 三維數(shù)據(jù)點(diǎn)與線 256
4.14.2 三維等高線圖 256
4.14.3 線框圖和曲面圖 258
4.14.4 曲面三角剖分 259
4.15 用Basemap可視化地理數(shù)據(jù) 261
4.15.1 地圖投影 263
4.15.2 畫一個(gè)地圖背景 267
4.15.3 在地圖上畫數(shù)據(jù) 269
4.15.4 案例:美國加州城市數(shù)據(jù) 270
4.15.5 案例:地表溫度數(shù)據(jù) 271
4.16 用Seaborn做數(shù)據(jù)可視化 273
4.16.1 Seaborn與Matplotlib 274
4.16.2 Seaborn圖形介紹 275
4.16.3 案例:探索馬拉松比賽成績數(shù)據(jù) 283
4.17 參考資料 290
4.17.1 Matplotlib資源 290
4.17.2 其他Python畫圖程序庫 290
第5 章 機(jī)器學(xué)習(xí) 291
5.1 什么是機(jī)器學(xué)習(xí) 291
5.1.1 機(jī)器學(xué)習(xí)的分類 292
5.1.2 機(jī)器學(xué)習(xí)應(yīng)用的定性示例 292
5.1.3 小結(jié) 299
5.2 Scikit-Learn簡介 300
5.2.1 Scikit-Learn的數(shù)據(jù)表示 300
5.2.2 Scikit-Learn的評估器API 302
5.2.3 應(yīng)用:手寫數(shù)字探索 309
5.2.4 小結(jié) 313
5.3 超參數(shù)與模型驗(yàn)證 313
5.3.1 什么是模型驗(yàn)證 314
5.3.2 選擇模型 317
5.3.3 學(xué)習(xí)曲線 322
5.3.4 驗(yàn)證實(shí)踐:網(wǎng)格搜索 326
5.3.5 小結(jié) 327
5.4 特征工程 327
5.4.1 分類特征 327
5.4.2 文本特征 329
5.4.3 圖像特征 330
5.4.4 衍生特征 330
5.4.5 缺失值填充 332
5.4.6 特征管道 332
5.5 專題:樸素貝葉斯分類 333
5.5.1 貝葉斯分類 333
5.5.2 高斯樸素貝葉斯 334
5.5.3 多項(xiàng)式樸素貝葉斯 336
5.5.4 樸素貝葉斯的應(yīng)用場景 339
5.6 專題:線性回歸 340
5.6.1 簡單線性回歸 340
5.6.2 基函數(shù)回歸 342
5.6.3 正則化 346
5.6.4 案例:預(yù)測自行車流量 349
5.7 專題:支持向量機(jī) 353
5.7.1 支持向量機(jī)的由來 354
5.7.2 支持向量機(jī):邊界*大化 355
5.7.3 案例:人臉識(shí)別 363
5.7.4 支持向量機(jī)總結(jié) 366
5.8 專題:決策樹與隨機(jī)森林 367
5.8.1 隨機(jī)森林的誘因:決策樹 367
5.8.2 評估器集成算法:隨機(jī)森林 371
5.8.3 隨機(jī)森林回歸 373
5.8.4 案例:用隨機(jī)森林識(shí)別手寫數(shù)字 374
5.8.5 隨機(jī)森林總結(jié) 376
5.9 專題:主成分分析 376
5.9.1 主成分分析簡介 377
5.9.2 用PCA作噪音過濾 383
5.9.3 案例:特征臉 385
5.9.4 主成分分析總結(jié) 387
5.10 專題:流形學(xué)習(xí) 388
5.10.1 流形學(xué)習(xí):“HELLO” 388
5.10.2 多維標(biāo)度法(MDS) 389
5.10.3 將MDS用于流形學(xué)習(xí) 391
5.10.4 非線性嵌入:當(dāng)MDS失敗時(shí) 393
5.10.5 非線性流形:局部線性嵌入 395
5.10.6 關(guān)于流形方法的一些思考 396
5.10.7 示例:用Isomap 處理人臉數(shù)據(jù) 397
5.10.8 示例:手寫數(shù)字的可視化結(jié)構(gòu) 400
5.11 專題:k-means聚類 402
5.11.1 k-means簡介 403
5.11.2 k-means算法:期望*大化 404
5.11.3 案例 409
5.12 專題:高斯混合模型 415
5.12.1 高斯混合模型(GMM)為什么會(huì)出現(xiàn):k-means算法
的缺陷 415
5.12.2 一般化E-M:高斯混合模型 417
5.12.3 將GMM用作密度估計(jì) 421
5.12.4 示例:用GMM生成新的數(shù)據(jù) 425
5.13 專題:核密度估計(jì) 427
5.13.1 KDE的由來:直方圖 428
5.13.2 核密度估計(jì)的實(shí)際應(yīng)用 431
5.13.3 示例:球形空間的KDE 433
5.13.4 示例:不是很樸素的貝葉斯 436
5.14 應(yīng)用:人臉識(shí)別管道 439
5.14.1 HOG特征 440
5.14.2 HOG實(shí)戰(zhàn):簡單人臉識(shí)別器 441
5.14.3 注意事項(xiàng)與改進(jìn)方案 445
5.15 機(jī)器學(xué)習(xí)參考資料 446
5.15.1 Python中的機(jī)器學(xué)習(xí) 446
5.15.2 通用機(jī)器學(xué)習(xí)資源 447
關(guān)于作者 448
關(guān)于封面 448