本書從數據分析的基本概念和Python的基礎語法講起,然后逐步深入到Python數據分析的編程技術方面,并結合實戰(zhàn)重點講解了如何使用主流Python數據分析庫進行數據分析,讓讀者快速掌握Python的編程基礎知識,并對Python數據分析有更加深入的理解。
本書分為13章,涵蓋的主要內容有數據分析概述、Python的特點和編程基礎、NumPy數組的基礎和進階用法、Pandas數據處理和數據分析、數據的導入導出、數據可視化,以及Python網絡爬蟲和Scikit-learn機器學習的入門知識。
本書內容豐富全面,語言簡潔、通俗易懂,實用性強,還包含實戰(zhàn)案例,特別適合Python的初學者和自學者,以及缺乏編程經驗的數據分析從業(yè)人員閱讀,也適合對數據分析編程感興趣的愛好者閱讀。
● 內容全面 覆蓋數據爬取、數據存取、數據訪問、數據預處理和數據分析等
● 案例豐富 實戰(zhàn)案例+ 案例源碼,幫助讀者快速掌握實操技能
● 知識拓展 網絡爬蟲+ 機器學習,幫助讀者進一步提升專業(yè)技能
劉麟 軟件系統(tǒng)架構師,長期為企業(yè)和相關機構開設Python和數據分析相關的公開課并擔任主講人。他曾與南加州大學合作參與了生物信息相關的研究課題,負責基因數據分析的工作,共同合作的論文發(fā)表于Nature期刊。他參加的開發(fā)項目包括了智能推薦系統(tǒng)、云計算、移動互聯(lián)網產品等,有著豐富的Python開發(fā)和數據分析工作的經驗。
第 1章 數據分析概述 1
1.1 數據分析的含義 1
1.2 數據分析的基礎流程 1
1.3 數據收集 2
1.3.1 線下收集 2
1.3.2 線上收集 3
1.4 統(tǒng)計分析策略 3
1.4.1 描述性統(tǒng)計分析 3
1.4.2 推斷性統(tǒng)計分析 4
1.4.3 探索性統(tǒng)計分析 5
1.5 數據分析方法 5
1.5.1 公式拆解法 5
1.5.2 對比分析法 6
1.5.3 預測分析法 6
1.5.4 漏斗分析法 6
1.5.5 象限分析法 7
1.6 數據挖掘的標準流程(CRISP-DM模型) 7
1.7 數據分析工具 8
1.7.1 Microsoft Excel 8
1.7.2 R語言 9
1.7.3 Python 9
第 2章 為什么選擇Python 10
2.1 關于Python 10
2.1.1 Python的起源 10
2.1.2 Python 2和Python 3 11
2.2 了解Python的特點 11
2.2.1 簡單易學 11
2.2.2 自由開放 12
2.2.3 解釋型語言 12
2.2.4 封裝與擴展性 12
2.3 Python在數據分析上的優(yōu)勢 13
2.3.1 自由的數據結構 13
2.3.2 黏合劑Python 13
2.3.3 豐富的第三方庫 13
2.4 數據分析的第三方庫 14
2.4.1 NumPy 14
2.4.2 Pandas 14
2.4.3 Matplotlib 15
2.4.4 SciPy 15
2.4.5 Scikit-learn 15
2.5 網絡爬蟲的第三方庫 16
2.5.1 Request 16
2.5.2 lxml 16
2.5.3 html5lib 16
2.5.4 BeautifulSoup 17
2.5.5 Scrapy 17
第3章 Python編程基礎 18
3.1 安裝與配置 18
3.1.1 在Windows操作系統(tǒng)下安裝Python 18
3.1.2 在macOS下安裝Python 18
3.1.3 在GNU/Linux操作系統(tǒng)下安裝Python 19
3.1.4 安裝及更新Python庫 19
3.1.5 集成開發(fā)環(huán)境 20
3.2 Hello World! 20
3.2.1 Python解釋器 20
3.2.2 運行IPython 21
3.3 基礎語法 22
3.3.1 縮進 22
3.3.2 注釋 22
3.3.3 標識符 23
3.3.4 關鍵字 23
3.4 變量和數據類型 23
3.4.1 變量賦值 23
3.4.2 布爾型 24
3.4.3 數值類型 24
3.4.4 字符串 24
3.5 內置的數據結構 25
3.5.1 集合 25
3.5.2 元組 26
3.5.3 列表 26
3.5.4 字典 27
3.6 控制流 28
3.6.1 條件語句 28
3.6.2 循環(huán)語句 29
3.6.3 break和continue關鍵字 30
3.7 函數 31
3.7.1 函數定義 31
3.7.2 函數調用 31
3.7.3 lambda函數 32
3.8 類 32
3.8.1 類定義 32
3.8.2 類的實例化 33
3.8.3 類的屬性訪問 34
3.8.4 類的方法調用 35
3.9 文件操作 36
3.9.1 打開和關閉文件 36
3.9.2 讀寫文件 37
第4章 NumPy數組:基礎篇 40
4.1 數組對象 40
4.1.1 對象屬性 40
4.1.2 數據類型 42
4.2 創(chuàng)建數組 44
4.2.1 通用的創(chuàng)建方式 44
4.2.2 填充數組 45
4.2.3 對角矩陣 48
4.2.4 空數組 50
4.2.5 等差數組 51
4.2.6 隨機數組 52
4.3 數組訪問 58
4.3.1 基礎索引 58
4.3.2 數組切片 60
4.3.3 索引切片 62
4.4 數組更新 64
4.4.1 更新數組元素 64
4.4.2 插入數組元素 67
4.4.3 刪除數組元素 72
4.4.4 復制數組 74
4.5 數組變換 76
4.5.1 數組重塑 76
4.5.2 軸變換 79
4.5.3 數組合并:拼接 89
4.5.4 數組合并:堆疊 94
4.5.5 數組拆分 100
4.6 矩陣運算 102
4.6.1 矩陣對象 102
4.6.2 矩陣乘法 107
4.6.3 逆矩陣和共軛矩陣 108
4.6.4 數值特征和特征值 112
4.6.5 矩陣分解 116
4.7 數組運算 119
4.7.1 算術運算 119
4.7.2 絕對值 122
4.7.3 指數和對數 123
4.7.4 三角和反三角函數 124
4.8 聚合統(tǒng)計 126
4.8.1 求和與乘積 126
4.8.2 均值和標準差 128
4.8.3 最大值和最小值 129
4.8.4 中位數和百分位數 130
4.8.5 邏輯統(tǒng)計函數 132
4.8.6 多維數組的聚合 134
第5章 NumPy數組:進階篇 137
5.1 NumPy的高效運算 137
5.1.1 快速的矢量化計算 137
5.1.2 靈活的廣播機制 139
5.1.3 廣播的規(guī)則 141
5.2 通用函數 144
5.2.1 初識通用函數 144
5.2.2 通用函數的實例方法 151
5.2.3 定義新的通用函數 154
5.3 數組形式的條件判斷 156
5.3.1 布爾表達式 156
5.3.2 where函數 158
5.3.3 where參數 161
5.4 數組的高級索引 163
5.4.1 布爾索引 163
5.4.2 Fancy索引 164
5.4.3 索引組合 165
5.5 數組排序 166
5.5.1 直接排序 166
5.5.2 間接排序 168
5.5.3 分區(qū)排序 169
5.6 結構化數組 170
5.6.1 結構化數組的創(chuàng)建 170
5.6.2 結構化數組的索引訪問 172
5.6.3 記錄數組 173
第6章 Pandas:數據處理 174
6.1 Pandas數據結構 174
6.1.1 Series對象 174
6.1.2 DataFrame對象 178
6.1.3 索引對象 183
6.2 數據索引和選取 185
6.2.1 Series中的數據選取 185
6.2.2 DataFrame中的數據選取 189
6.3 處理缺失數據 193
6.3.1 表示缺失數據的策略 193
6.3.2 Pandas中的缺失數據 194
6.3.3 對缺失值的操作 197
6.4 數據集合并 201
6.4.1 append函數 201
6.4.2 concat函數 202
6.4.3 join函數 205
6.4.4 merge函數 206
6.5 分層索引 212
6.5.1 分層索引:從一維到多維 212
6.5.2 分層索引的構建方法 214
6.5.3 多層級切片 216
6.5.4 重新排列分層索引 217
第7章 Pandas:數據分析 221
7.1 Pandas中的數組運算 221
7.1.1 Pandas中的通用函數 221
7.1.2 索引保留 226
7.1.3 索引對齊 227
7.1.4 Series和DataFrame之間的運算 229
7.2 數據聚合 231
7.2.1 基礎的聚合操作 231
7.2.2 靈活的聚合函數 235
7.2.3 基于行索引的分組聚合 238
7.3 數據分組 242
7.3.1 分組對象 242
7.3.2 分組鍵 246
7.3.3 分組聚合 257
7.3.4 過濾分組數據 260
7.3.5 基于分組的數據轉換 263
7.4 數據透視表 265
7.4.1 透視表和分組對象 265
7.4.2 定制透視表 270
7.4.3 透視表的進階用法 273
7.5 時間序列 276
7.5.1 時間數據的類型 276
7.5.2 時間序列的索引 278
7.5.3 時間序列的數據訪問 287
第8章 數據的導入導出 294
8.1 文本數據 294
8.1.1 從文本導入數據 294
8.1.2 導出數據到文本 296
8.2 Excel數據 297
8.2.1 從電子表格導入數據 297
8.2.2 導出數據到電子表格 298
8.3 網絡數據 299
8.3.1 JSON格式 299
8.3.2 XML和HTML格式 301
8.4 數據庫 302
8.4.1 關系數據庫 302
8.4.2 數據庫API 303
8.5 Pandas數據對象的導入導出 305
8.5.1 分隔文本格式 305
8.5.2 Excel數據格式 309
8.5.3 JSON數據格式 310
8.5.4 讀取數據庫 311
第9章 數據可視化 312
9.1 Matplotlib繪圖的基礎設置 312
9.1.1 繪圖面板 312
9.1.2 圖形樣式 313
9.1.3 坐標軸 315
9.1.4 圖例 317
9.2 Pandas繪圖接口 318
9.2.1 折線圖 318
9.2.2 柱狀圖 319
9.2.3 直方圖和密度圖 321
9.2.4 散點圖 321
第 10章 實戰(zhàn):數據預處理 323
10.1 數據導入 323
10.1.1 數據描述 323
10.1.2 數據讀取 323
10.1.3 數據合并 324
10.2 數據清洗 324
10.2.1 冗余數據 324
10.2.2 缺失數據 325
10.2.3 無效數據 325
10.3 數據轉換 326
10.3.1 數據類型轉換 326
10.3.2 分層索引 327
10.3.3 生成時間序列 327
10.4 數據過濾 329
10.5 數據導出 329
第 11章 實戰(zhàn):數據分析 331
11.1 時間序列分析 331
11.1.1 導入時間序列 331
11.1.2 生成時間區(qū)間數據 332
11.1.3 時間窗函數 333
11.2 統(tǒng)計分析 336
11.2.1 描述性統(tǒng)計 336
11.2.2 聚合統(tǒng)計 337
11.2.3 分組統(tǒng)計 339
11.3 關聯(lián)分析 341
11.3.1 數據聯(lián)合 341
11.3.2 協(xié)方差和相關系數 343
11.4 透視表分析 344
11.4.1 數據集整合 344
11.4.2 分層透視表 346
第 12章 Python網絡爬蟲 350
12.1 Robots協(xié)議 350
12.2 數據抓取 351
12.2.1 最基本的數據抓取 351
12.2.2 處理登錄請求 352
12.2.3 連接超時 353
12.3 Scrapy庫 354
12.3.1 搭建工程項目 354
12.3.2 編寫爬蟲 355
12.3.3 數據選擇器 356
12.3.4 定義數據對象 360
12.3.5 數據管道 362
第 13章 Scikit-learn機器學習 365
13.1 選擇合適的機器學習模型 365
13.2 數據預處理 365
13.2.1 標準化 366
13.2.2 歸一化 367
13.2.3 正態(tài)化 368
13.3 監(jiān)督學習 369
13.3.1 線性模型 369
13.3.2 最近鄰算法 371
13.3.3 支持向量機 374
13.3.4 隨機森林 376
13.4 無監(jiān)督學習 377
13.4.1 K-means聚類算法 377
13.4.2 主成分分析(PCA) 379
13.4.3 高斯混合模型 381