本書從Python基礎編程語法入手,系統(tǒng)介紹了基于Python語言進行數(shù)據(jù)處理、分析、可視化展示等內容。本書共11章,主要內容包括數(shù)據(jù)分析基礎、Python數(shù)據(jù)分析環(huán)境、Python數(shù)據(jù)類型、程序控制結構、函數(shù)與模塊、文件、NumPy數(shù)值計算、Pandas數(shù)據(jù)分析處理、Matplotlib數(shù)據(jù)可視化、SciPy科學計算和機器學習等。
本書從Python基礎編程語法入手,系統(tǒng)介紹了基于Python語言進行數(shù)據(jù)處理、分析、可視化展示等內容。
前 言
隨著大數(shù)據(jù)、云計算和人工智能等新一代信息技術的快速發(fā)展,數(shù)據(jù)已成為數(shù)字時代的基礎性戰(zhàn)略資源和革命性關鍵要素。如何從這些數(shù)據(jù)中發(fā)現(xiàn)并挖掘有價值的信息成為熱門的研究領域;谶@些需求,數(shù)據(jù)分析技術應運而生。 數(shù)據(jù)分析是對收集來的大量數(shù)據(jù)進行分析,提取有用信息,對數(shù)據(jù)加以詳細研究和概括總結的過程。
Python語言是一種面向對象的解釋型計算機程序設計語言,語法簡潔清晰,由于其擁有豐富的第三方庫,能夠完成從數(shù)據(jù)采集、數(shù)據(jù)挖掘、數(shù)據(jù)分析到數(shù)據(jù)可視化展示等操作,已成為當前數(shù)據(jù)分析與科學計算、機器學習等領域的最流行的工具之一。
本書以案例為主線,從Python語言的基礎語法入手,重點介紹如何使用Python語言進行數(shù)據(jù)分析和科學計算。
全書共有11章內容。
第1章:數(shù)據(jù)分析基礎。講解數(shù)據(jù)分析的相關概念及其應用場景,數(shù)據(jù)分析的流程和常用數(shù)據(jù)分析工具。
第2章:Python數(shù)據(jù)分析環(huán)境。講解Python語言的發(fā)展及特點,Python開發(fā)環(huán)境IDLE和集成開發(fā)環(huán)境PyCharm的搭建,數(shù)據(jù)分析環(huán)境Anaconda和開發(fā)工具Jupyter Notebook的安裝。
第3章:Python數(shù)據(jù)類型。講解Python基本數(shù)據(jù)類型和組合數(shù)據(jù)類型以及數(shù)據(jù)的輸入與輸出。
第4章:程序控制結構。講解程序設計的三種基本結構:順序結構、選擇結構和循環(huán)結構。
第5章:函數(shù)與模塊。講解函數(shù)的定義和調用方式、函數(shù)的參數(shù)傳遞、匿名函數(shù)、變量的作用域、模塊。
第6章:文件。講解文件的打開與關閉、文本文件和二進制文件的讀寫、文件的定位、os模塊和os.path模塊。
第7章:NumPy數(shù)值計算。講解數(shù)組對象、數(shù)組的基本操作、數(shù)組的索引和切片、數(shù)組和線性代數(shù)的相關運算、NumPy數(shù)據(jù)文件的讀寫。
第8章:Pandas數(shù)據(jù)分析處理。講解Pandas的數(shù)據(jù)結構Series和DataFrame、索引、數(shù)據(jù)運算、缺失值處理、數(shù)據(jù)的讀寫。
第9章:Matplotlib數(shù)據(jù)可視化。講解Pyplot子模塊繪制圖形,折線圖、柱形圖、直方圖、餅形圖、散點圖、箱線圖、雷達圖、流線圖、熱力圖、極坐標圖和3D曲線圖的繪制。
第10章:SciPy科學計算。講解SciPy中的科學計算工具、SciPy中的優(yōu)化、SciPy中的稀疏矩陣存儲和運算。
第11章:機器學習。講解 Scikit-Learn庫的功能及數(shù)據(jù)集,機器學習中的分類算法、回歸算法和聚類算法。
本書由王小銀、王曙燕和賈冀婷共同編著。第1、5、7、8、9、10、11章由王小銀編寫,第2、3章由賈冀婷編寫,第4、6章由王曙燕編寫,全書由王小銀統(tǒng)稿。本書的編寫得到了孫家澤老師和舒新峰老師的大力支持,在此一并向他們表示衷心的感謝。
在本書的編寫過程中,編者參考了大量的專業(yè)書籍和網(wǎng)絡資料,在此向這些作者表示感謝。
本書既適合作為高等學校Python課程的教材,也適合使用Python進行數(shù)據(jù)分析和科學計算的讀者閱讀。
由于編寫時間倉促,編者水平有限,書中可能會存在不足之處,懇請廣大讀者批評指正。
編 者
目 錄
前言
第1章 數(shù)據(jù)分析基礎 1
1.1 數(shù)據(jù)分析概述 1
1.1.1 數(shù)據(jù)分析 1
1.1.2 數(shù)據(jù)分析的應用場景 2
1.2 數(shù)據(jù)分析的流程 3
1.3 常用數(shù)據(jù)分析工具 4
1.4 本章小結 6
習題 6
第2章 Python數(shù)據(jù)分析環(huán)境 7
2.1 Python概述 7
2.2 Python語言的特點 8
2.3 搭建Python開發(fā)環(huán)境 9
2.3.1 Windows環(huán)境下安裝Python開發(fā)
環(huán)境 9
2.3.2 運行第一個Python程序 14
2.4 集成開發(fā)環(huán)境—PyCharm 15
2.4.1 PyCharm安裝 15
2.4.2 PyCharm使用 18
2.5 數(shù)據(jù)分析環(huán)境Anaconda 23
2.5.1 安裝Anaconda 23
2.5.2 通過Anaconda管理Python包 26
2.6 開發(fā)工具Jupyter Notebook 27
2.6.1 啟動Anaconda自帶的Jupyter Notebook 27
2.6.2 使用Jupyter Notebook編寫程序 28
2.7 本章小結 30
習題 30
第3章 Python數(shù)據(jù)類型 31
3.1 Python基本數(shù)據(jù)類型 31
3.1.1 整型數(shù)據(jù) 31
3.1.2 浮點型數(shù)據(jù) 33
3.1.3 字符型數(shù)據(jù) 34
3.1.4 布爾型數(shù)據(jù) 35
3.1.5 復數(shù)類型數(shù)據(jù) 36
3.2 Python組合數(shù)據(jù)類型 36
3.2.1 列表 37
3.2.2 元組 45
3.2.3 字符串 49
3.2.4 集合 55
3.2.5 字典 61
3.3 數(shù)據(jù)的輸入與輸出 67
3.3.1 標準輸入/輸出 67
3.3.2 格式化輸出 69
3.3.3 字符串的format方法 71
3.4 本章小結 74
習題 74
第4章 程序控制結構 78
4.1 程序的基本結構 78
4.1.1 順序結構 78
4.1.2 選擇結構 79
4.1.3 循環(huán)結構 79
4.2 選擇結構程序設計 80
4.2.1 單分支選擇結構 80
4.2.2 雙分支選擇結構 82
4.2.3 多分支選擇結構 83
4.2.4 選擇結構嵌套 85
4.3 循環(huán)結構程序設計 87
4.3.1 while循環(huán)結構 87
4.3.2 for語句結構 90
4.3.3 循環(huán)的嵌套 93
4.3.4 循環(huán)控制語句 95
4.4 本章小結 97
習題 97
第5章 函數(shù)與模塊 100
5.1 函數(shù)概述 100
5.2 函數(shù)的定義與調用 101
5.2.1 函數(shù)定義 101
5.2.2 函數(shù)調用 102
5.3 函數(shù)的參數(shù)及返回值 103
5.3.1 形式參數(shù)和實際參數(shù) 103
5.3.2 默認值參數(shù) 105
5.3.3 位置參數(shù)和關鍵字參數(shù) 107
5.3.4 可變長參數(shù) 108
5.3.5 函數(shù)的返回值 111
5.4 函數(shù)的遞歸調用 113
5.5 匿名函數(shù) 116
5.6 變量的作用域 118
5.6.1 局部變量 118
5.6.2 全局變量 119
5.7 模塊 119
5.7.1 定義模塊 120
5.7.2 導入模塊 120
5.8 函數(shù)應用舉例 122
5.9 本章小結 125
習題 125
第6章 文件 128
6.1 文件概述 128
6.1.1 文件的定義和分類 128
6.1.2 文件的操作流程 130
6.2 文件的打開與關閉 130
6.2.1 打開文件 130
6.2.2 關閉文件 133
6.3 文件的讀寫 133
6.3.1 文本文件的讀寫 133
6.3.2 二進制文件的讀寫 136
6.4 文件的定位 140
6.5 與文件相關的模塊 141
6.5.1 os模塊 141
6.5.2 os.path模塊 144
6.6 文件應用舉例 146
6.7 本章小結 148
習題 148
第7章 NumPy數(shù)值計算 150
7.1 數(shù)組對象 150
7.1.1?數(shù)組創(chuàng)建 150
7.1.2?數(shù)組屬性 160
7.1.3?數(shù)組元素的類型 161
7.2?數(shù)組的基本操作 162
7.2.1?數(shù)組重塑 162
7.2.2?數(shù)組合并 165
7.2.3?數(shù)組分割 167
7.2.4?數(shù)組轉置 169
7.3?數(shù)組的索引和切片 171
7.3.1?一維數(shù)組的索引和切片 171
7.3.2?多維數(shù)組的索引和切片 172
7.3.3?花式索引 173
7.3.4?布爾型索引 174
7.4 數(shù)組運算 175
7.4.1?矢量化運算 175
7.4.2 數(shù)組廣播 176
7.4.3 數(shù)組和標量間的運算 177
7.5 NumPy通用函數(shù) 177
7.6 線性代數(shù)運算 180
7.6.1 數(shù)組相乘 180
7.6.2 矩陣行列式 182
7.6.3 線性方程組 182
7.6.4 逆矩陣 183
7.6.5 特征值和特征向量 183
7.7 NumPy數(shù)據(jù)文件的讀寫 184
7.7.1 二進制文件的讀寫 184
7.7.2 文本文件的讀寫 185
7.8 NumPy數(shù)據(jù)分析案例 186
7.9 本章小結 187
習題 187
第8章 Pandas數(shù)據(jù)分析處理 189
8.1 Pandas數(shù)據(jù)結構 189
8.1.1 序列 189
8.1.2 數(shù)據(jù)幀 191
8.2 索引 194
8.2.1 重建索引 194
8.2.2 重命名索引 195
8.2.3 層次化索引 196
8.3 數(shù)據(jù)運算 197
8.3.1 算術運算 197
8.3.2 匯總和統(tǒng)計 198
8.3.3 唯一值和值計數(shù) 202
8.4 數(shù)據(jù)排序 202
8.4.1 按索引排序 202
8.4.2 按值排序 204
8.5 缺失值處理 205
8.5.1 判斷缺失值 205
8.5.2 刪除缺失值 207
8.5.3 填充缺失值 208
8.6 數(shù)據(jù)的讀寫 210
8.6.1 讀寫CSV文件 210
8.6.2 讀寫Excel文件 212
8.6.3 讀寫數(shù)據(jù)庫文件 214
8.7 本章小結 216
習題 216
第9章 Matplotlib數(shù)據(jù)可視化 218
9.1 Pyplot模塊 218
9.1.1 繪制線形圖 218
9.1.2 繪制單個子圖 221
9.1.3 繪制多個子圖 222
9.1.4 添加圖形標簽 225
9.1.5 添加注釋 226
9.1.6 保存圖表 228
9.2 基本圖形繪制 228
9.2.1 折線圖 229
9.2.2 柱形圖 229
9.2.3 直方圖 231
9.2.4 餅形圖 232
9.2.5 散點圖 232
9.2.6 箱線圖 235
9.3 高級圖形繪制 238
9.3.1 雷達圖 238
9.3.2 流線圖 240
9.3.3 熱力圖 241
9.3.4 極坐標圖 242
9.3.5 3D曲線圖 244
9.4 本章小結 247
習