Python數據分析(第3版) Python Data Analysis : Perform data collection, data processing, wrangling, visualization, and model building using Python, 3/e

[印] 阿維納什·納夫拉尼(Avinash Navlani)

  • Python數據分析(第3版)-preview-1
  • Python數據分析(第3版)-preview-2
Python數據分析(第3版)-preview-1

商品描述

通過數據分析,你能夠發現數據中的模式及其變化趨勢,並從中獲取有價值的信息。Python是流行的數據分析工具之一。本書由淺入深地講解使用Python進行數據分析的相關知識,以及如何使用Python中的各種庫來創建有效的數據管道,以便更好地進行數據分析和預測。

本書共4個部分。第1部分講解Python的基礎數據知識和相關數學知識,包括Python和相關庫、軟件的安裝與使用,以及統計學和線性代數知識。第2部分講解探索性數據分析和數據清洗,包括數據可視化、數據檢索、數據處理、數據存儲、數據清洗、信號處理和時間序列分析。第3部分講解如何使用機器學習算法進行數據分析,包括回歸分析、分類技術、主成分分析和聚類算法。第4部分通過實際案例,講解如何使用自然語言處理(NLP)和圖像分析技術來分析文本和圖像,以及如何使用Dask進行並行計算。

本書適合想要通過Python完成數據分析的讀者閱讀。

作者簡介

阿维纳什·纳夫拉尼(Avinash Navlani)在数据科学和人工智能方面拥有超过10年的工作经验。目前,他是一位高级数据科学家,使用高级分析技术部署大数据分析工具、创建和维护模型,并采用引人注目的新数据集来为客户改善产品和服务。在此之前,他曾是一名大学讲师,对数据科学领域的人员进行培训和教育,授课的内容包括用Python进行数据分析、数据挖掘、机器学习、数据库管理等。他一直参与数据科学领域的研究活动,并在印度的许多会议上担任主题发言人。

 

阿曼多·凡丹戈(Armando Fandango)利用其在深度学习、机器学习、分布式计算和计算方法方面的专业知识创造人工智能产品,曾在初创企业和大型企业担任首席数据科学家和总监。他曾为基于人工智能的高科技初创企业提供咨询服务。他撰写了《Python数据分析(第2版)》和《精通TensorFlow》等图书。他还在国际期刊和会议上发表过研究成果。

 

伊万·伊德里斯(Ivan Idris)拥有实验物理学硕士学位。他的毕业论文注重应用计算机科学。毕业后,他曾在多家公司工作,担任Java开发人员、数据仓库开发人员和QA分析师。他的兴趣包括商业智能、大数据和云计算。他喜欢编写简洁、可测试的代码和撰写有趣的技术文章。他是《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 執行 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 創建 NumPy 視圖和副本 38

2.9 NumPy 數組的切片 40

2.10 布爾索引和花式索引 41

2.11 廣播數組 42

2.12 創建 DataFrame 對象 44

2.13 理解 Series 數據結構 45

2.14 讀取和查詢 Quandl數據包 48

2.15 DataFrame 對象的統計函數 51

2.16 DataFrame 對象的分組和連接 53

2.17 處理缺失值 56

2.18 創建數據透視表 57

2.19 處理日期 58

2.20 總結 60

第 3 章 統計學 61

3.1 技術要求 62

3.2 數據的屬性及其類型 62

3.2.1 屬性類型 62

3.2.2 離散和連續屬性 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 正態分佈 89

4.12 用 SciPy 庫測試數據的正態性 90

4.13 使用 numpy.ma 子程序包創建掩碼數組 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 章 監督學習——回歸分析 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 邏輯回歸模型的優缺點 209

9.10 使用 Scikit-learn 庫實現邏輯回歸 209

9.11 總結 211

第 10 章 監督學習——分類技術 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 章 無監督學習——PCA 和聚類 231

11.1 技術要求 232

11.2 無監督學習 232

11.3 降低數據的維度 232

11.4 聚類 236

11.5 使用 k 均值聚類法對數據進行分區 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 文本規範化 260

12.4 標記化 260

12.5 去除停用詞 263

12.6 詞乾提取和詞形還原 265

12.7 POS 標簽 266

12.8 識別實體 268

12.9 依賴解析 269

12.10 創建詞雲 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 規模化的數據預處理 317

14.4.1 Dask 中的特徵縮放 317

14.4.2 Dask 中的特徵編碼 319

14.5 規模化的機器學習 321

14.5.1 使用 Scikit-learn 進行並行計算 321

14.5.2 為 Dask 重新實現機器學習算法 323

14.6 總結 326