目 錄
第1章 構(gòu)建Python開發(fā)環(huán)境 1
1.1 理解數(shù)據(jù)分析 1
1.1.1 數(shù)據(jù)分析是什么 1
1.1.2 數(shù)據(jù)分析的步驟 2
1.2 安裝Python及開發(fā)工具 3
1.2.1 安裝Python 3 3
1.2.2 安裝第三方開發(fā)工具 5
1.2.3 認(rèn)識Python程序 5
1.3 Python語言基礎(chǔ) 6
1.3.1 初識Python語法 6
1.3.2 保留字與標(biāo)識符 9
1.3.3 變量 10
1.3.4 基本數(shù)據(jù)類型 11
1.3.5 運(yùn)算符 14
1.3.6 基本輸入與輸出 18
1.4 從文件中讀取數(shù)據(jù) 19
1.4.1 Python讀取CSV文件 19
1.4.2 Python讀取JSON文件 20
1.4.3 Python讀取數(shù)據(jù)庫文件 21
1.4.4 Python保存數(shù)據(jù)文件 22
1.5 本章小結(jié) 24
1.6 動(dòng)手練習(xí) 24
第2章 控制語句 25
2.1 程序結(jié)構(gòu) 25
2.2 選擇語句 26
2.2.1 if語句 26
2.2.2 if…else語句 26
2.2.3 if…elif…else語句 27
2.2.4 if語句的嵌套 28
2.3 條件表達(dá)式 29
2.4 循環(huán)語句 30
2.4.1 while循環(huán) 30
2.4.2 for循環(huán) 30
2.4.3 循環(huán)嵌套 32
2.5 跳轉(zhuǎn)語句 33
2.5.1 continue語句 33
2.5.2 break語句 34
2.6 pass語句 35
2.7 本章小結(jié) 35
2.8 動(dòng)手練習(xí) 35
第3章 序列 37
3.1 序列概述 37
3.1.1 索引 37
3.1.2 切片 38
3.1.3 序列相加 38
3.1.4 乘法 39
3.1.5 檢查某個(gè)元素是不是序列的成員 39
3.1.6 計(jì)算序列的長度、最大值和最小值 40
3.2 列表 40
3.2.1 創(chuàng)建與刪除列表 40
3.2.2 訪問列表元素 42
3.2.3 遍歷列表 42
3.2.4 添加、修改和刪除列表元素 44
3.2.5 對列表進(jìn)行統(tǒng)計(jì)和計(jì)算 46
3.2.6 對列表進(jìn)行排序 47
3.2.7 列表推導(dǎo)式 49
3.2.8 二維列表的使用 51
3.3 元組 52
3.3.1 創(chuàng)建與刪除元組 52
3.3.2 訪問元組元素 54
3.3.3 修改元組元素 55
3.3.4 元組推導(dǎo)式 55
3.3.5 元組和列表的區(qū)別 56
3.4 字典 56
3.4.1 字典的創(chuàng)建與刪除 57
3.4.2 通過鍵-值對訪問字典 59
3.4.3 遍歷字典 60
3.4.4 添加、修改和刪除字典元素 60
3.4.5 字典推導(dǎo)式 61
3.5 集合 61
3.5.1 創(chuàng)建集合 62
3.5.2 添加和刪除集合元素 63
3.5.3 集合的交集、并集和差集運(yùn)算 64
3.5.4 列表、元組、字典和集合的區(qū)別 65
3.6 本章小結(jié) 65
3.7 動(dòng)手練習(xí) 66
第4章 函數(shù) 67
4.1 創(chuàng)建和調(diào)用函數(shù) 67
4.1.1 創(chuàng)建函數(shù) 67
4.1.2 調(diào)用函數(shù) 69
4.2 函數(shù)的參數(shù) 69
4.2.1 形式參數(shù)和實(shí)際參數(shù) 69
4.2.2 位置參數(shù) 71
4.2.3 關(guān)鍵字參數(shù) 71
4.2.4 為參數(shù)設(shè)置默認(rèn)值 72
4.2.5 可變參數(shù) 74
4.2.6 Python中參數(shù)的總結(jié) 75
4.3 返回值 76
4.4 變量的作用域 78
4.4.1 局部變量 78
4.4.2 全局變量 78
4.5 匿名函數(shù) 78
4.6 程序模塊化 80
4.6.1 模塊概述 80
4.6.2 自定義模塊 80
4.6.3 模塊的搜索目錄 83
4.7 Python中的包 84
4.7.1 python程序的包結(jié)構(gòu) 84
4.7.2 創(chuàng)建和使用包 84
4.8 引用其他模塊 87
4.8.1 導(dǎo)入和使用模塊標(biāo)準(zhǔn) 87
4.8.2 第三方模塊的下載與安裝 87
4.9 本章小結(jié) 89
4.10 動(dòng)手練習(xí) 90
第5章 字符串及正則表達(dá)式 91
5.1 字符串的常用操作 91
5.1.1 拼接字符串 91
5.1.2 計(jì)算字符串長度 92
5.1.3 截取字符串 93
5.1.4 分割、合并字符串 94
5.1.5 檢索字符串 96
5.1.6 字符串大小寫轉(zhuǎn)換 98
5.1.7 去除字符串中的空格和特殊字符 99
5.2 字符串編碼轉(zhuǎn)換 101
5.2.1 encode()方法對字符串編碼 102
5.2.2 decode()方法對字符串解碼 103
5.3 正則表達(dá)式基礎(chǔ) 103
5.3.1 元字符 104
5.3.2 行定位符 108
5.3.3 字符類 108
5.3.4 排除字符 108
5.3.5 選擇字符 109
5.3.6 轉(zhuǎn)義字符 109
5.3.7 分組 109
5.3.8 正則表達(dá)式語法 110
5.4 re模塊 110
5.4.1 匹配字符串 110
5.4.2 替換字符串 112
5.4.3 分割字符串 113
5.5 本章小結(jié) 113
5.6 動(dòng)手練習(xí) 114
第6章 用NumPy進(jìn)行數(shù)據(jù)計(jì)算 115
6.1 安裝NumPy 115
6.2 NumPy數(shù)組 117
6.2.1 ndarray數(shù)組基礎(chǔ)及實(shí)例 118
6.2.2 矩陣 125
6.2.3 NumPy線性代數(shù)相關(guān)函數(shù) 126
6.3 NumPy函數(shù) 129
6.3.1 字符串函數(shù)及實(shí)例 129
6.3.2 數(shù)學(xué)函數(shù)及實(shí)例 134
6.3.3 算術(shù)函數(shù) 137
6.3.4 統(tǒng)計(jì)函數(shù) 140
6.3.5 排序條件篩選函數(shù) 146
6.4 本章小結(jié) 152
6.5 動(dòng)手練習(xí) 152
第7章 用Pandas進(jìn)行數(shù)據(jù)處理 153
7.1 安裝Pandas 153
7.2 Pandas數(shù)據(jù)結(jié)構(gòu) 154
7.2.1 Pandas數(shù)據(jù)結(jié)構(gòu)Series 154
7.2.2 Pandas數(shù)據(jù)結(jié)構(gòu)DataFrame 157
7.3 Pandas數(shù)據(jù)清洗 161
7.3.1 清洗空值 162
7.3.2 清洗格式錯(cuò)誤數(shù)據(jù) 166
7.3.3 清洗錯(cuò)誤數(shù)據(jù) 167
7.3.4 清洗重復(fù)數(shù)據(jù) 168
7.4 本章小結(jié) 170
7.5 動(dòng)手練習(xí) 170
第8章 用SciPy進(jìn)行科學(xué)計(jì)算 171
8.1 安裝SciPy 171
8.2 SciPy數(shù)學(xué)模塊 172
8.2.1 SciPy常量模塊 172
8.2.2 SciPy優(yōu)化模塊 175
8.2.3 SciPy稀疏矩陣模塊 177
8.2.4 SciPy圖結(jié)構(gòu) 180
8.2.5 SciPy插值模塊 188
8.3 SciPy工程模塊 191
8.3.1 SciPy Matlab數(shù)組 192
8.3.2 Scipy 顯著性檢驗(yàn) 195
8.4 本章小結(jié) 200
8.5 動(dòng)手練習(xí) 200
第9章 Matplotlib數(shù)據(jù)可視化 202
9.1 安裝Matplotlib 202
9.2 Matplotlib繪圖基礎(chǔ) 202
9.2.1 Matplotlib Pyplot模塊 203
9.2.2 Matplotlib繪圖標(biāo)記 210
9.2.3 Matplotlib繪制圖線 215
9.2.4 Matplotlib軸標(biāo)簽和標(biāo)題 219
9.3 Matplotlib網(wǎng)格線 222
9.4 Matplotlib繪制圖形 225
9.4.1 Matplotlib繪制多個(gè)子圖 225
9.4.2 Matplotlib 散點(diǎn)圖及實(shí)例 230
9.4.3 Matplotlib柱形圖 237
9.4.4 Matplotlib餅圖 241
9.5 本章小結(jié) 243
9.6 動(dòng)手練習(xí) 244
第10章 用Scikit-learn進(jìn)行數(shù)據(jù)分析 246
10.1 Scikit-learn簡介 246
10.1.1 安裝 Scikit-learn 246
10.1.2 機(jī)器學(xué)習(xí)和Scikit-learn庫 247
10.2 利用Scikit-learn進(jìn)行數(shù)據(jù)分析的方法 248
10.2.1 決策樹(Decision Trees (DTs)) 248
10.2.2 支持向量機(jī) 253
10.2.3 樸素貝葉斯 258
10.3 聚類 260
10.3.1 概述 260
10.3.2 K-means 260
10.3.3 層次聚類 262
10.4 時(shí)間序列 266
10.4.1 時(shí)間序列概念 266
10.4.2 ARMA模型預(yù)測案例 266
10.5 主成分分析 274
10.5.1 主成分分析的概念 274
10.5.2 主成分分析案例 274
10.6 本章小結(jié) 279
10.7 動(dòng)手練習(xí) 280
第11章 數(shù)據(jù)分析案例 281
11.1 案例1:IMDB電影數(shù)據(jù)分析 281
11.1.1 案例描述 281
11.1.2 準(zhǔn)備數(shù)據(jù) 282
11.1.3 數(shù)據(jù)清洗 283
11.1.4 數(shù)據(jù)分析與數(shù)據(jù)可視化 283
11.1.5 思考練習(xí) 290
11.2 案例2:二手房房價(jià)預(yù)測分析 290
11.2.1 案例描述 290
11.2.2 系統(tǒng)設(shè)計(jì) 291
11.2.3 技術(shù)準(zhǔn)備 292
11.2.4 二手房數(shù)據(jù)分析 294
11.2.5 案例小結(jié) 302