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