通過數(shù)據(jù)分析,你能夠發(fā)現(xiàn)數(shù)據(jù)中的模式及其變化趨勢,并從中獲取有價值的信息。Python是流行的數(shù)據(jù)分析工具之一。本書由淺入深地講解使用Python進(jìn)行數(shù)據(jù)分析的相關(guān)知識,以及如何使用Python中的各種庫來創(chuàng)建有效的數(shù)據(jù)管道,以便更好地進(jìn)行數(shù)據(jù)分析和預(yù)測。
本書共4個部分。第1部分講解Python的基礎(chǔ)數(shù)據(jù)知識和相關(guān)數(shù)學(xué)知識,包括Python和相關(guān)庫、軟件的安裝與使用,以及統(tǒng)計學(xué)和線性代數(shù)知識。第2部分講解探索性數(shù)據(jù)分析和數(shù)據(jù)清洗,包括數(shù)據(jù)可視化、數(shù)據(jù)檢索、數(shù)據(jù)處理、數(shù)據(jù)存儲、數(shù)據(jù)清洗、信號處理和時間序列分析。第3部分講解如何使用機器學(xué)習(xí)算法進(jìn)行數(shù)據(jù)分析,包括回歸分析、分類技術(shù)、主成分分析和聚類算法。第4部分通過實際案例,講解如何使用自然語言處理(NLP)和圖像分析技術(shù)來分析文本和圖像,以及如何使用Dask進(jìn)行并行計算。
本書適合想要通過Python完成數(shù)據(jù)分析的讀者閱讀。
阿維納什·納夫拉尼(Avinash Navlani)在數(shù)據(jù)科學(xué)和人工智能方面擁有超過10年的工作經(jīng)驗。目前,他是一位高級數(shù)據(jù)科學(xué)家,使用高級分析技術(shù)部署大數(shù)據(jù)分析工具、創(chuàng)建和維護(hù)模型,并采用引人注目的新數(shù)據(jù)集來為客戶改善產(chǎn)品和服務(wù)。在此之前,他曾是一名大學(xué)講師,對數(shù)據(jù)科學(xué)領(lǐng)域的人員進(jìn)行培訓(xùn)和教育,授課的內(nèi)容包括用Python進(jìn)行數(shù)據(jù)分析、數(shù)據(jù)挖掘、機器學(xué)習(xí)、數(shù)據(jù)庫管理等。他一直參與數(shù)據(jù)科學(xué)領(lǐng)域的研究活動,并在印度的許多會議上擔(dān)任主題發(fā)言人。 阿曼多·凡丹戈(Armando Fandango)利用其在深度學(xué)習(xí)、機器學(xué)習(xí)、分布式計算和計算方法方面的專業(yè)知識創(chuàng)造人工智能產(chǎn)品,曾在初創(chuàng)企業(yè)和大型企業(yè)擔(dān)任首席數(shù)據(jù)科學(xué)家和總監(jiān)。他曾為基于人工智能的高科技初創(chuàng)企業(yè)提供咨詢服務(wù)。他撰寫了《Python數(shù)據(jù)分析(第2版)》和《精通TensorFlow》等圖書。他還在國際期刊和會議上發(fā)表過研究成果。 伊萬·伊德里斯(Ivan Idris)擁有實驗物理學(xué)碩士學(xué)位。他的畢業(yè)論文注重應(yīng)用計算機科學(xué)。畢業(yè)后,他曾在多家公司工作,擔(dān)任Java開發(fā)人員、數(shù)據(jù)倉庫開發(fā)人員和QA分析師。他的興趣包括商業(yè)智能、大數(shù)據(jù)和云計算。他喜歡編寫簡潔、可測試的代碼和撰寫有趣的技術(shù)文章。他是《Python數(shù)據(jù)分析基礎(chǔ)教程:NumPy學(xué)習(xí)指南(第2版)》和《NumPy攻略:Python科學(xué)計算與數(shù)據(jù)分析》的作者。
第 1 部分 數(shù)據(jù)基礎(chǔ)
第 1 章 Python 庫入門 2
1.1 理解數(shù)據(jù)分析 3
1.2 數(shù)據(jù)分析的標(biāo)準(zhǔn)流程 4
1.3 KDD 流程 4
1.4 SEMMA 流程 5
1.5 CRISP-DM 6
1.6 數(shù)據(jù)分析與數(shù)據(jù)科學(xué)的比較 7
1.7 數(shù)據(jù)分析師和數(shù)據(jù)科學(xué)家應(yīng)掌握的工具和技能 8
1.8 Python 3 的安裝 9
1.8.1 在 Windows 操作系統(tǒng)中安裝 Python 3 10
1.8.2 在 Linux 操作系統(tǒng)中安裝Python 3 10
1.8.3 使用安裝文件在 macOS中安裝 Python 3 10
1.8.4 使用 brew 命令在 macOS中安裝 Python 3 10
1.9 使用 Anaconda 11
1.10 使用 IPython 12
1.10.1 使用幫助功能 13
1.10.2 查找 Python 庫的參考資料 14
1.11 使用 JupyterLab 14
1.12 使用 Jupyter Notebook 15
1.13 Jupyter Notebook 的高級功能 16
1.13.1 快捷命令 16
1.13.2 安裝其他內(nèi)核 16
1.13.3 執(zhí)行 shell 命令 17
1.13.4 Jupyter Notebook 的擴(kuò)展 17
1.14 總結(jié) 21
第 2 章 NumPy 和 pandas 22
2.1 技術(shù)要求 23
2.2 了解 NumPy 數(shù)組 23
2.2.1 數(shù)組特征 25
2.2.2 選擇數(shù)組元素 26
2.3 NumPy 數(shù)組中數(shù)值的數(shù)據(jù)類型 27
2.3.1 dtype 對象 29
2.3.2 數(shù)據(jù)類型字符代碼 30
2.3.3 dtype()構(gòu)造函數(shù) 30
2.3.4 dtype 屬性 31
2.4 NumPy 數(shù)組的操作 31
2.5 NumPy 數(shù)組的堆疊 33
2.6 拆分 NumPy 數(shù)組 36
2.7 改變 NumPy 數(shù)組的數(shù)據(jù)類型 37
2.8 創(chuàng)建 NumPy 視圖和副本 38
2.9 NumPy 數(shù)組的切片 40
2.10 布爾索引和花式索引 41
2.11 廣播數(shù)組 42
2.12 創(chuàng)建 DataFrame 對象 44
2.13 理解 Series 數(shù)據(jù)結(jié)構(gòu) 45
2.14 讀取和查詢 Quandl數(shù)據(jù)包 48
2.15 DataFrame 對象的統(tǒng)計函數(shù) 51
2.16 DataFrame 對象的分組和連接 53
2.17 處理缺失值 56
2.18 創(chuàng)建數(shù)據(jù)透視表 57
2.19 處理日期 58
2.20 總結(jié) 60
第 3 章 統(tǒng)計學(xué) 61
3.1 技術(shù)要求 62
3.2 數(shù)據(jù)的屬性及其類型 62
3.2.1 屬性類型 62
3.2.2 離散和連續(xù)屬性 63
3.3 測量集中趨勢 63
3.3.1 平均值 63
3.3.2 眾數(shù) 64
3.3.3 中位數(shù) 65
3.4 測量分散 65
3.5 偏度和峰度 67
3.6 使用協(xié)方差和相關(guān)系數(shù)理解關(guān)系 68
3.6.1 皮爾遜相關(guān)系數(shù) 68
3.6.2 斯皮爾曼等級相關(guān)系數(shù) 69
3.6.3 肯德爾等級相關(guān)系數(shù) 69
3.7 中心極限定理 69
3.8 收集樣本 70
3.9 參數(shù)檢驗 71
3.10 非參數(shù)檢驗 76
3.11 總結(jié) 80
第 4 章 線性代數(shù) 81
4.1 技術(shù)要求 82
4.2 用 NumPy 庫進(jìn)行多項式擬合 82
4.3 行列式 83
4.4 求解矩陣的秩 83
4.5 使用 NumPy 庫求逆矩陣 84
4.6 使用 NumPy 庫求解線性方程 85
4.7 使用 SVD 分解矩陣 85
4.8 特征向量和特征值 86
4.9 生成隨機數(shù) 87
4.10 二項分布 88
4.11 正態(tài)分布 89
4.12 用 SciPy 庫測試數(shù)據(jù)的正態(tài)性 90
4.13 使用 numpy.ma 子程序包創(chuàng)建掩碼數(shù)組 93
4.14 總結(jié) 94
第 2 部分 探索性數(shù)據(jù)分析和數(shù)據(jù)清洗
第 5 章 數(shù)據(jù)可視化 96
5.1 技術(shù)要求 96
5.2 使用 Matplotlib 庫實現(xiàn)數(shù)據(jù)可視化 96
5.2.1 圖的附件 98
5.2.2 散點圖 99
5.2.3 折線圖 100
5.2.4 餅圖 101
5.2.5 柱狀圖 102
5.2.6 直方圖 103
5.2.7 氣泡圖 104
5.2.8 使用 pandas 庫繪圖 106
5.3 使用 Seaborn 庫實現(xiàn)高級的數(shù)據(jù)可視化 108
5.3.1 lm 圖 108
5.3.2 柱狀圖 110
5.3.3 分布圖 111
5.3.4 箱形圖 112
5.3.5 KDE 圖 112
5.3.6 小提琴圖 113
5.3.7 計數(shù)圖 114
5.3.8 聯(lián)合圖 115
5.3.9 熱力圖 116
5.3.10 配對圖 117
5.4 使用 Bokeh 庫實現(xiàn)交互式數(shù)據(jù)可視化 118
5.4.1 繪制簡單的圖 119
5.4.2 標(biāo)志符 120
5.4.3 布局 121
5.4.4 多重圖 124
5.4.5 交互 125
5.4.6 注釋 128
5.4.7 懸停工具 129
5.4.8 小部件 131
5.5 總結(jié) 135
第 6 章 數(shù)據(jù)的檢索、處理和存儲 136
6.1 技術(shù)要求 137
6.2 用 NumPy 庫讀取和寫入 CSV文件 137
6.3 用 pandas 庫讀取和寫入 CSV文件 138
6.4 Excel 文件的數(shù)據(jù)讀取和寫入 139
6.5 JSON 文件的數(shù)據(jù)讀取和寫入 140
6.6 HDF5 文件的數(shù)據(jù)讀取和寫入 141
6.7 HTML 表的數(shù)據(jù)讀取和寫入 142
6.8 Parquet 文件的數(shù)據(jù)讀取和寫入 142
6.9 pickle 文件的數(shù)據(jù)讀取和寫入 143
6.10 用 SQLite3 庫進(jìn)行輕量級訪問 144
6.11 MySQL 數(shù)據(jù)庫的數(shù)據(jù)讀取和寫入 145
6.12 MongoDB 數(shù)據(jù)庫的數(shù)據(jù)讀取和寫入 148
6.13 Cassandra 數(shù)據(jù)庫的數(shù)據(jù)讀取和寫入 149
6.14 Redis 數(shù)據(jù)庫的數(shù)據(jù)讀取和寫入 150
6.15 PonyORM 151
6.16 總結(jié) 152
第 7 章 清洗混亂的數(shù)據(jù) 153
7.1 技術(shù)要求 154
7.2 探索數(shù)據(jù) 154
7.3 過濾數(shù)據(jù) 156
7.3.1 列式過濾 157
7.3.2 行式過濾 158
7.4 處理缺失值 161
7.4.1 刪除缺失值 161
7.4.2 填補缺失值 162
7.5 處理異常值 164
7.6 特征編碼 165
7.6.1 獨熱編碼 166
7.6.2 標(biāo)簽編碼 167
7.6.3 順序編碼 168
7.7 特征縮放 169
7.8 特征轉(zhuǎn)換 171
7.9 特征分割 173
7.10 總結(jié) 173
第 8 章 信號處理和時間序列分析 174
8.1 技術(shù)要求 175
8.2 Statsmodels 庫 175
8.3 移動平均數(shù) 175
8.4 窗口函數(shù) 177
8.5 協(xié)整法 179
8.6 STL 分解 181
8.7 自相關(guān) 182
8.8 自回歸模型 184
8.9 ARMA 模型 186
8.10 生成周期性信號 188
8.11 傅里葉分析 191
8.12 頻譜分析濾波 192
8.13 總結(jié) 194
第 3 部分 深入研究機器學(xué)習(xí)
第 9 章 監(jiān)督學(xué)習(xí)回歸分析 196
9.1 技術(shù)要求 197
9.2 線性回歸 197
9.3 多重共線性 198
9.4 虛擬變量 200
9.5 建立線性回歸模型 201
9.6 評估回歸模型的性能 203
9.6.1 決定系數(shù) 203
9.6.2 均方誤差 203
9.6.3 平均絕對誤差 204
9.6.4 均方根誤差 204
9.7 擬合多項式回歸 205
9.8 分類回歸模型 207
9.9 邏輯回歸 207
9.9.1 邏輯回歸模型的特點 208
9.9.2 邏輯回歸算法的類型 209
9.9.3 邏輯回歸模型的優(yōu)缺點 209
9.10 使用 Scikit-learn 庫實現(xiàn)邏輯回歸 209
9.11 總結(jié) 211
第 10 章 監(jiān)督學(xué)習(xí)分類技術(shù) 212
10.1 技術(shù)要求 213
10.2 分類 213
10.3 樸素貝葉斯分類 214
10.4 決策樹分類 217
10.5 k 近鄰分類 219
10.6 支持向量機分類 221
10.7 拆分訓(xùn)練集和測試集 223
10.7.1 Holdout 法 223
10.7.2 k 折交叉驗證法 224
10.7.3 Bootstrap 法 224
10.8 分類模型的性能評估指標(biāo) 225
10.8.1 混淆矩陣 225
10.8.2 準(zhǔn)確率 227
10.8.3 精確度 227
10.8.4 召回率 228
10.8.5 F1值 228
10.9 ROC 曲線和 AUC 229
10.10 總結(jié) 230
第 11 章 無監(jiān)督學(xué)習(xí)PCA 和聚類 231
11.1 技術(shù)要求 232
11.2 無監(jiān)督學(xué)習(xí) 232
11.3 降低數(shù)據(jù)的維度 232
11.4 聚類 236
11.5 使用 k 均值聚類法對數(shù)據(jù)進(jìn)行分區(qū) 241
11.6 層次聚類 243
11.7 DBSCAN 方法 246
11.8 譜聚類 248
11.9 評估聚類性能 250
11.9.1 內(nèi)部性能評估 251
11.9.2 外部性能評估 252
11.10 總結(jié) 255
第 4 部分 NLP、圖像分析和并行計算
第 12 章 分析文本數(shù)據(jù) 258
12.1 技術(shù)要求 259
12.2 安裝 NLTK 和 SpaCy 259
12.3 文本規(guī)范化 260
12.4 標(biāo)記化 260
12.5 去除停用詞 263
12.6 詞干提取和詞形還原 265
12.7 POS 標(biāo)簽 266
12.8 識別實體 268
12.9 依賴解析 269
12.10 創(chuàng)建詞云 269
12.11 詞包 271
12.12 TF-IDF 272
12.13 使用文本分類進(jìn)行情感分析 272
12.13.1 使用 BoW 進(jìn)行分類 273
12.13.2 使用 TF-IDF 進(jìn)行分類 276
12.14 文本相似性 279
12.14.1 Jaccard 相似性 280
12.14.2 余弦相似性 280
12.15 總結(jié) 281
第 13 章 分析圖像數(shù)據(jù) 282
13.1 技術(shù)要求 283
13.2 安裝 OpenCV 283
13.3 了解圖像數(shù)據(jù) 283
13.3.1 二進(jìn)制圖像 284
13.3.2 灰度圖像 284
13.3.3 彩色圖像 285
13.4 顏色模型 285
13.5 在圖像上繪圖 288
13.6 在圖像上書寫 292
13.7 調(diào)整圖像的大小 293
13.8 翻轉(zhuǎn)圖像 295
13.9 改變亮度 297
13.10 模糊圖像 298
13.11 人臉檢測 301
13.12 總結(jié) 304
第 14 章 使用 Dask 進(jìn)行并行計算 305
14.1 認(rèn)識 Dask 306
14.2 Dask 數(shù)據(jù)類型 307
14.2.1 Dask 數(shù)組 307
14.2.2 Dask DataFrame 308
14.2.3 Dask Bag 313
14.3 Dask 延遲 315
14.4 規(guī)模化的數(shù)據(jù)預(yù)處理 317
14.4.1 Dask 中的特征縮放 317
14.4.2 Dask 中的特征編碼 319
14.5 規(guī);臋C器學(xué)習(xí) 321
14.5.1 使用 Scikit-learn 進(jìn)行并行計算 321
14.5.2 為 Dask 重新實現(xiàn)機器學(xué)習(xí)算法 323
14.6 總結(jié) 326