本書首先介紹Python和Jupyter筆記本的基礎知識,然后逐一介紹豐富的、與數(shù)據(jù)科學相關的Python庫,并舉例說明如何在實際工作中運用Python。本書將Python和數(shù)據(jù)科學融合起來,幫助讀者快速入門Python并使用Python完成數(shù)據(jù)分析相關任務,是實用的快速上手教程。書中代碼使用與Jupyter筆記本兼容的Colab創(chuàng)建,方便讀者配置和使用。
本書適合希望在工作中使用Python的讀者閱讀,也適合想要利用數(shù)據(jù)科學原理完成各類項目的讀者參考。
數(shù)據(jù)科學和機器學習領域經(jīng)常使用Python。如果你對這兩個領域特別感興趣,卻又不太清楚如何有針對性地學習Python,那么本書可以為你提供一些幫助。
本書作者經(jīng)驗豐富,能夠量體裁衣,為你提供指導。
從Python編程快速過渡到利用Python完成數(shù)據(jù)分析;面向各行各業(yè)的從業(yè)人員和各專業(yè)的學生。
肯尼迪·貝爾曼是一位經(jīng)驗豐富的軟件工程師。他最初使用Python管理影視特效方面的數(shù)字資產(chǎn),后來更廣泛地應用Python。他撰寫了許多關于Python教育的書籍,還發(fā)起了很多相關培訓項目。目前他是Envestnet的高級數(shù)據(jù)工程師。
第Ⅰ部分 在筆記本環(huán)境中學習Python
第 1章 筆記本簡介 3
1.1 運行Python語句 3
1.2 Jupyter筆記本 4
1.3 Google Colab 4
1.3.1 Colab文本單元 5
1.3.2 LaTeX 7
1.3.3 Colab代碼單元 7
1.3.4 Colab文件 7
1.3.5 管理Colab文檔 8
1.3.6 Colab代碼片段 8
1.3.7 現(xiàn)有資料集 8
1.3.8 系統(tǒng)別名 8
1.3.9 魔法函數(shù) 9
1.4 本章小結 9
1.5 問題 9
第 2章 Python基礎 10
2.1 Python的基本類型 10
2.1.1 高級語言與低級語言 11
2.1.2 語句 12
2.2 執(zhí)行基礎數(shù)學運算 17
2.3 用點號訪問類和對象 18
2.4 本章小結 18
2.5 問題 18
第3章 序列 19
3.1 通用的操作 19
3.1.1 檢測成員關系 19
3.1.2 索引 20
3.1.3 切片 20
3.1.4 查看信息 21
3.1.5 數(shù)學運算 22
3.2 列表和元組 22
3.2.1 創(chuàng)建列表和元組 22
3.2.2 添加和刪除列表元素 23
3.2.3 拆包 25
3.2.4 列表排序 25
3.3 字符串 26
3.4 range對象 27
3.5 本章小結 28
3.6 問題 28
第4章 其他數(shù)據(jù)結構 29
4.1 字典 29
4.1.1 創(chuàng)建字典 29
4.1.2 利用鍵訪問、追加、更新
字典 30
4.1.3 從字典中移除項目 31
4.1.4 字典視圖 32
4.1.5 判斷字典是否包含某個鍵 34
4.1.6 get方法 34
4.1.7 合法的鍵類型 35
4.1.8 哈希方法 36
4.2 集合 37
4.2.1 集合的運算 39
4.2.2 原封集合 43
4.3 本章小結 44
4.4 問題 44
第5章 執(zhí)行控制 45
5.1 復合語句 45
5.1.1 復合語句的結構 45
5.1.2 判斷True與False 46
5.2 if語句 49
5.3 while循環(huán) 52
5.4 for循環(huán) 52
5.5 break和continue語句 53
5.6 本章小結 54
5.7 問題 54
第6章 函數(shù) 55
6.1 定義函數(shù) 55
6.1.1 控制語句 55
6.1.2 文檔字符串 56
6.1.3 參數(shù) 57
6.1.4 返回語句 62
6.2 函數(shù)的作用域 63
6.3 裝飾器 63
6.4 匿名函數(shù) 67
6.5 本章小結 68
6.6 問題 68
第Ⅱ部分 數(shù)據(jù)科學庫
第7章 NumPy 73
7.1 安裝并引入NumPy 73
7.2 創(chuàng)建數(shù)組 74
7.3 索引與切片 77
7.4 逐元素運算 78
7.5 過濾值 80
7.6 視圖與拷貝 81
7.7 數(shù)組的一些方法 83
7.8 廣播 86
7.9 NumPy代數(shù) 88
7.10 本章小結 89
7.11 問題 89
第8章 SciPy 90
8.1 SciPy簡介 90
8.2 scipy.misc子模塊 90
8.3 scipy.special子模塊 91
8.4 scipy.stats子模塊 92
8.4.1 離散分布 92
8.4.2 連續(xù)分布 95
8.5 本章小結 98
8.6 問題 98
第9章 pandas 99
9.1 關于數(shù)據(jù)框 99
9.2 創(chuàng)建數(shù)據(jù)框 99
9.2.1 通過字典創(chuàng)建數(shù)據(jù)框 100
9.2.2 根據(jù)列表的列表創(chuàng)建數(shù)據(jù)框 101
9.2.3 利用文件創(chuàng)建數(shù)據(jù)框 102
9.3 與數(shù)據(jù)框中的數(shù)據(jù)交互 102
9.3.1 首尾 103
9.3.2 描述統(tǒng)計學 104
9.3.3 訪問數(shù)據(jù) 105
9.3.4 方括號語法 106
9.3.5 利用標簽優(yōu)化數(shù)據(jù)訪問 108
9.3.6 利用索引優(yōu)化數(shù)據(jù)訪問 109
9.3.7 遮罩與過濾 110
9.3.8 pandas布爾運算 111
9.4 操縱數(shù)據(jù)框 112
9.5 操縱數(shù)據(jù) 114
9.6 交互式顯示 117
9.7 本章小結 117
9.8 問題 117
第 10章 可視化庫 119
10.1 Matplotlib 119
10.1.1 調整樣式 120
10.1.2 帶標簽的數(shù)據(jù) 123
10.1.3 繪制多組數(shù)據(jù) 124
10.1.4 面向對象的樣式 125
10.2 seaborn 127
10.3 Plotly 130
10.4 Bokeh 131
10.5 其他可視化庫 132
10.6 本章小結 133
10.7 問題 133
第 11章 機器學習庫 134
11.1 常用機器學習庫 134
11.2 機器學習如何工作 134
11.2.1 轉換 135
11.2.2 劃分測試與訓練數(shù)據(jù) 136
11.2.3 訓練與測試 137
11.3 進一步學習scikit-learn 137
11.4 本章小結 137
11.5 問題 138
第 12章 自然語言工具箱 139
12.1 NLTK示例文本 139
12.2 頻度分布 141
12.3 文本對象 144
12.4 文本分類 146
12.5 本章小結 148
12.6 習題 149
第Ⅲ部分 Python中級知識
第 13章 函數(shù)式編程 153
13.1 函數(shù)式編程簡介 153
13.1.1 作用域與狀態(tài) 153
13.1.2 依賴全局狀態(tài) 154
13.1.3 改變狀態(tài) 155
13.1.4 修改可變數(shù)據(jù) 156
13.1.5 函數(shù)式編程中的函數(shù) 157
13.2 列表推導式 159
13.2.1 列表推導式的基本語法 159
13.2.2 替代map和filter 159
13.2.3 多變量 160
13.2.4 字典推導式 161
13.3 生成器 161
13.3.1 生成器表達式 161
13.3.2 生成器函數(shù) 162
13.4 本章小結 164
13.5 問題 164
第 14章 面向對象編程 165
14.1 將狀態(tài)與函數(shù)編組 165
14.1.1 類與實例 165
14.1.2 私有方法和變量 167
14.1.3 類變量 168
14.2 特殊方法 168
14.2.1 表示方法 169
14.2.2 富比較方法 170
14.2.3 數(shù)學運算方法 173
14.3 繼承 174
14.4 本章小結 177
14.5 問題 177
第 15章 其他主題 178
15.1 排序 178
15.2 讀寫文件 181
15.3 datetime對象 182
15.4 正則表達式 184
15.4.1 字符集 185
15.4.2 字符類 185
15.4.3 分組 186
15.4.4 帶名分組 186
15.4.5 搜索所有匹配 187
15.4.6 搜索迭代器 187
15.4.7 替換 187
15.4.8 使用帶名分組替換 187
15.4.9 編譯正則表達式 188
15.5 本章小結 189
15.6 問題 189
附錄A 章末問題答案 190
附錄B 圖片版權 195