第1章 數據分析簡介 1
1.1 數據分析 1
1.2 數據分析師的知識範疇 2
1.2.1 計算機科學 2
1.2.2 數學和統計學 3
1.2.3 機器學習和人工智能 3
1.2.4 數據來源領域 3
1.3 理解數據的性質 4
1.3.1 數據到信息的轉變 4
1.3.2 信息到知識的轉變 4
1.3.3 數據的類型 4
1.4 數據分析過程 4
1.4.1 問題定義 5
1.4.2 數據抽取 6
1.4.3 數據準備 6
1.4.4 數據探索和可視化 7
1.4.5 預測模型 7
1.4.6 模型評估 8
1.4.7 部署 8
1.5 定量和定性數據分析 9
1.6 開放數據 9
1.7 Python和數據分析 11
1.8 結論 11
第2章 Python世界簡介 12
2.1 Python——編程語言 12
2.2 Python——解釋器 13
2.2.1 Cython 14
2.2.2 Jython 14
2.2.3 PyPy 14
2.3 Python 2和Python 3 14
2.4 安裝Python 15
2.5 Python發行版 15
2.5.1 Anaconda 15
2.5.2 Enthought Canopy 16
2.5.3 Python(x,y) 17
2.6 使用Python 17
2.6.1 Python shell 17
2.6.2 運行完整的Python程序 17
2.6.3 使用IDE編寫代碼 18
2.6.4 跟Python交互 18
2.7 編寫Python代碼 18
2.7.1 數學運算 18
2.7.2 導入新的庫和函數 19
2.7.3 函數式編程 21
2.7.4 縮進 22
2.8 IPython 23
2.8.1 IPython shell 23
2.8.2 IPython Qt-Console 24
2.9 PyPI倉庫——Python包索引 25
2.10 多種Python IDE 26
2.10.1 IDLE 26
2.10.2 Spyder 27
2.10.3 Eclipse(pyDev) 27
2.10.4 Sublime 28
2.10.5 Liclipse 29
2.10.6 NinjaIDE 29
2.10.7 Komodo IDE 29
2.11 SciPy 30
2.11.1 NumPy 30
2.11.2 pandas 30
2.11.3 matplotlib 31
2.12 小結 31
第3章 NumPy庫 32
3.1 NumPy簡史 32
3.2 NumPy安裝 32
3.3 ndarray:NumPy庫的心髒 33
3.3.1 創建數組 34
3.3.2 數據類型 34
3.3.3 dtype選項 35
3.3.4 自帶的數組創建方法 36
3.4 基本操作 37
3.4.1 算術運算符 37
3.4.2 矩陣積 38
3.4.3 自增和自減運算符 39
3.4.4 通用函數 40
3.4.5 聚閤函數 40
3.5 索引機製、切片和迭代方法 41
3.5.1 索引機製 41
3.5.2 切片操作 42
3.5.3 數組迭代 43
3.6 條件和布爾數組 45
3.7 形狀變換 45
3.8 數組操作 46
3.8.1 連接數組 46
3.8.2 數組切分 47
3.9 常用概念 49
3.9.1 對象的副本或視圖 49
3.9.2 嚮量化 50
3.9.3 廣播機製 50
3.10 結構化數組 52
3.11 數組數據文件的讀寫 53
3.11.1 二進製文件的讀寫 54
3.11.2 讀取文件中的列錶形式數據 54
3.12 小結 55
第4章 pandas庫簡介 56
4.1 pandas:Python數據分析庫 56
4.2 安裝 57
4.2.1 用Anaconda安裝 57
4.2.2 用PyPI安裝 58
4.2.3 在Linux係統的安裝方法 58
4.2.4 用源代碼安裝 58
4.2.5 Windows模塊倉庫 59
4.3 測試pandas是否安裝成功 59
4.4 開始pandas之旅 59
4.5 pandas數據結構簡介 60
4.5.1 Series對象 60
4.5.2 DataFrame對象 66
4.5.3 Index對象 72
4.6 索引對象的其他功能 74
4.6.1 更換索引 74
4.6.2 刪除 75
4.6.3 算術和數據對齊 77
4.7 數據結構之間的運算 78
4.7.1 靈活的算術運算方法 78
4.7.2 DataFrame和Series對象之間的運算 78
4.8 函數應用和映射 79
4.8.1 操作元素的函數 79
4.8.2 按行或列執行操作的函數 80
4.8.3 統計函數 81
4.9 排序和排位次 81
4.10 相關性和協方差 84
4.11 NaN數據 85
4.11.1 為元素賦NaN值 85
4.11.2 過濾NaN 86
4.11.3 為NaN元素填充其他值 86
4.12 等級索引和分級 87
4.12.1 重新調整順序和為層級排序 89
4.12.2 按層級統計數據 89
4.13 小結 90
第5章 pandas:數據讀寫 91
5.1 I/O API 工具 91
5.2 CSV和文本文件 92
5.3 讀取CSV或文本文件中的數據 92
5.3.1 用RegExp解析TXT文件 94
5.3.2 從TXT文件讀取部分數據 96
5.3.3 往CSV文件寫入數據 97
5.4 讀寫HTML文件 98
5.4.1 寫入數據到HTML文件 99
5.4.2 從HTML文件讀取數據 100
5.5 從XML讀取數據 101
5.6 讀寫Microsoft Excel文件 103
5.7 JSON數據 105
5.8 HDF5格式 107
5.9 pickle——Python對象序列化 108
5.9.1 用cPickle實現Python對象序列化 109
5.9.2 用pandas實現對象序列化 109
5.10 對接數據庫 110
5.10.1 SQLite3數據讀寫 111
5.10.2 PostgreSQL數據讀寫 112
5.11 NoSQL數據庫MongoDB數據讀寫 114
5.12 小結 116
第6章 深入pandas:數據處理 117
6.1 數據準備 117
6.2 拼接 122
6.2.1 組閤 124
6.2.2 軸嚮鏇轉 125
6.2.3 刪除 127
6.3 數據轉換 128
6.3.1 刪除重復元素 128
6.3.2 映射 129
6.4 離散化和麵元劃分 132
6.5 排序 136
6.6 字符串處理 137
6.6.1 內置的字符串處理方法 137
6.6.2 正則錶達式 139
6.7 數據聚閤 140
6.7.1 GroupBy 141
6.7.2 實例 141
6.7.3 等級分組 142
6.8 組迭代 143
6.8.1 鏈式轉換 144
6.8.2 分組函數 145
6.9 高級數據聚閤 145
6.10 小結 148
第7章 用matplotlib實現數據可視化 149
7.1 matplotlib庫 149
7.2 安裝 150
7.3 IPython和IPython QtConsole 150
7.4 matplotlib架構 151
7.4.1 Backend層 152
7.4.2 Artist層 152
7.4.3 Scripting層(pyplot) 153
7.4.4 pylab和pyplot 153
7.5 pyplot 154
7.5.1 生成一幅簡單的交互式圖錶 154
7.5.2 設置圖形的屬性 156
7.5.3 matplotlib和NumPy 158
7.6 使用kwargs 160
7.7 為圖錶添加更多元素 162
7.7.1 添加文本 162
7.7.2 添加網格 165
7.7.3 添加圖例 166
7.8 保存圖錶 168
7.8.1 保存代碼 169
7.8.2 將會話轉換為HTML文件 170
7.8.3 將圖錶直接保存為圖片 171
7.9 處理日期值 171
7.10 圖錶類型 173
7.11 綫性圖 173
7.12 直方圖 180
7.13 條狀圖 181
7.13.1 水平條狀圖 183
7.13.2 多序列條狀圖 184
7.13.3 為pandas DataFrame生成多序列條狀圖 185
7.13.4 多序列堆積條狀圖 186
7.13.5 為pandas DataFrame繪製堆積條狀圖 189
7.13.6 其他條狀圖 190
7.14 餅圖 190
7.15 高級圖錶 193
7.15.1 等值綫圖 193
7.15.2 極區圖 195
7.16 mplot3d 197
7.16.1 3D麯麵 197
7.16.2 3D散點圖 198
7.16.3 3D條狀圖 199
7.17 多麵闆圖形 200
7.17.1 在其他子圖中顯示子圖 200
7.17.2 子圖網格 202
7.18 小結 204
第8章 用scikit-learn庫實現機器學習 205
8.1 scikit-learn庫 205
8.2 機器學習 205
8.2.1 有監督和無監督學習 205
8.2.2 訓練集和測試集 206
8.3 用scikit-learn實現有監督學習 206
8.4 Iris數據集 206
8.5 K-近鄰分類器 211
8.6 Diabetes數據集 214
8.7 綫性迴歸:最小平方迴歸 215
8.8 支持嚮量機 219
8.8.1 支持嚮量分類 219
8.8.2 非綫性SVC 223
8.8.3 繪製SVM分類器對Iris數據集的分類效果圖 225
8.8.4 支持嚮量迴歸 227
8.9 小結 229
第9章 數據分析實例——氣象數據 230
9.1 待檢驗的假設:靠海對氣候的影響 230
9.2 數據源 233
9.3 用IPython Notebook做數據分析 234
9.4 風嚮頻率玫瑰圖 246
9.5 小結 251
第10章 IPython Notebook內嵌JavaScript庫D3 252
10.1 開放的人口數據源 252
10.2 JavaScript庫D3 255
10.3 繪製簇狀條狀圖 259
10.4 地區分布圖 262
10.5 2014年美國人口地區分布圖 266
10.6 小結 270
第11章 識彆手寫體數字 271
11.1 手寫體識彆 271
11.2 用scikit-learn識彆手寫體數字 271
11.3 Digits數據集 272
11.4 學習和預測 274
11.5 小結 276
附錄A 用LaTeX編寫數學錶達式 277
附錄B 開放數據源 287
· · · · · · (
收起)