Python 數據科學實戰

[俄]尤利·瓦西列夫(Yuli Vasiliev)

  • Python 數據科學實戰-preview-1
  • Python 數據科學實戰-preview-2
Python 數據科學實戰-preview-1

買這商品的人也買了...

商品描述

本書主要從實戰角度講述瞭如何處理、分析和可視化數據,如何用數據建立各種統計學或機器學習模型。本書首先介紹如何使用Python代碼獲取、轉換和分析數據;接著講述如何使用Python中的數據結構和第三方庫;然後展示如何以各種格式加載數據,如何對數據進行分組與匯總,如何創建圖表和可視化數據;最後討論如何解決實際的問題。

本書適合希望使用Python處理和分析數據的開發人員閱讀,也可供電腦相關專業的師生參考。

作者簡介

尤里·瓦西列夫(Yuli Vasiliev)是一名程序员、作家,精通开源开发、数据结构和数据库后端开发。他是 Natural Language Processing with Python and spaCy一书的作者。

目錄大綱

目  錄

 

第 1章 數據的基礎知識 1

1.1 數據類別 1

1.1.1 非結構化數據 1

1.1.2 結構化數據 2

1.1.3 半結構化數據 3

1.1.4 時間序列數據 4

1.2 數據來源 5

1.2.1 API 6

1.2.2 網頁 7

1.2.3 數據框 7

1.2.4 文件 8

1.3 數據處理流程 8

1.3.1 數據獲取 9

1.3.2 數據清洗 9

1.3.3 數據變換 10

1.3.4 數據分析 10

1.3.5 數據存儲 11

1.4 Python特有的方式 11

1.5 總結 12

第 2章 Python數據結構 13

2.1 列表 13

2.1.1 創建列表 14

2.1.2 使用常見列表對象方法 14

2.1.3 使用切片符號 15

2.1.4 用列表實現隊列 16

2.1.5 用列表實現棧 18

2.1.6 用列表和棧進行自然語言處理 18

2.1.7 使用列表推導式改進算法 20

2.2 元組 24

2.2.1 元組列表 24

2.2.2 不變性 25

2.3 字典 26

2.3.1 字典列表 26

2.3.2 使用setdefault()在字典中添加元素 26

2.3.3 將JSON文件加載到字典中 28

2.4 集合 29

2.4.1 從序列中刪除重復項 29

2.4.2 實現常見集合運算 30

2.5 總結 32

第3章 Python第三方庫 33

3.1 NumPy庫 33

3.1.1 安裝NumPy庫 34

3.1.2 創建NumPy數組 34

3.1.3 逐點運算 34

3.1.4 使用NumPy統計函數 35

3.2 pandas庫 36

3.2.1 安裝pandas庫 36

3.2.2 序列 36

3.2.3 數據框 39

3.3 scikit-learn庫 47

3.3.1 安裝scikit-learn庫 47

3.3.2 獲得樣本數據 48

3.3.3 把樣本數據載入數據框 48

3.3.4 把數據分成訓練數據集和測試數據集 48

3.3.5 把文本轉化為數值特徵向量 49

3.3.6 訓練和評估模型 50

3.3.7 在新數據中做預測 50

3.4 總結 51

第4章 從文件和API訪問數據 52

4.1 使用Python函數open()導入數據 52

4.1.1 文本文件 52

4.1.2 表格數據文件 54

4.1.3 二進制文件 56

4.2 將數據導出到文件 57

4.3 訪問遠程文件和API 58

4.3.1 HTTP請求的工作原理 58

4.3.2 urllib3庫 59

4.3.3 Requests庫 61

4.4 將數據移入或移出數據框 62

4.4.1 導入嵌套的JSON結構 62

4.4.2 將數據框轉換為JSON文檔 63

4.4.3 使用pandas-datareader庫將在線數據加載到數據框中 65

4.5 總結 66

第5章 使用數據庫 67

5.1 關系數據庫 67

5.1.1 瞭解SQL語句 68

5.1.2 MySQL入門 69

5.1.3 定義數據庫結構 69

5.1.4 將數據插入數據庫中 72

5.1.5 查詢數據庫數據 73

5.1.6 使用數據庫分析工具 75

5.2 NoSQL數據庫 81

5.2.1 Redis數據庫 81

5.2.2 MongoDB數據庫 83

5.3 總結 85

第6章 聚合數據 86

6.1 要聚合的數據 86

6.2 合並數據框 88

6.3 分組和聚合數據 90

6.3.1 按多索引查看特定值 91

6.3.2 通過切片獲得一系列值 93

6.3.3 多索引多層次切片 93

6.3.4 添加總計 94

6.3.5 添加小計 95

6.4 選擇組中的所有行 96

6.5 總結 97

第7章 合並數據 98

7.1 合並Python數據結構 98

7.1.1 使用“+”合並列表和元組 98

7.1.2 使用“**”合並字典 100

7.1.3 合並兩個結構的對應行 100

7.1.4 列表的多種合並方式 102

7.2 合並NumPy數組 104

7.3 合並pandas數據結構 106

7.3.1 連接數據框 106

7.3.2 合並兩個數據框 110

7.4 總結 114

第8章 數據可視化 115

8.1 常見可視化形式 115

8.1.1 折線圖 115

8.1.2 柱狀圖 116

8.1.3 餅狀圖 117

8.1.4 直方圖 118

8.2 使用Matplotlib庫繪制圖 118

8.2.1 安裝Matplotlib庫 118

8.2.2 使用matplotlib.pyplot 119

8.2.3 使用Figure和Axes對象 120

8.3 總結 124

第9章 分析空間數據 125

9.1 獲取空間數據 125

9.1.1 將人可讀的地址轉換為地理坐標 125

9.1.2 獲取移動對象的地理坐標 126

9.2 基於geopy庫和Shapely庫的空間數據分析 129

9.2.1 查找最近的對象 129

9.2.2 在特定區域中查找對象 131

9.2.3 結合兩種方法 133

9.3 結合空間數據和非空間數據 134

9.3.1 提取非空間屬性 134

9.3.2 合並空間數據集和非空間數據集 136

9.4 總結 137

第 10章 分析時間序列數據 139

10.1 規則時間序列與不規則時間序列 139

10.2 常見的時間序列分析技術 141

10.2.1 計算百分比變化 142

10.2.2 滾動窗口計算 143

10.2.3 計算滾動平均值的百分比變化 144

10.3 多元時間序列 144

10.3.1 處理多元時間序列 145

10.3.2 分析變量之間的依賴性 146

10.4 總結 150

第 11章 從數據中挖掘信息 151

11.1 關聯法則 151

11.1.1 支持度 152

11.1.2 置信度 152

11.1.3 提升度 153

11.2 Apriori算法 153

11.2.1 創建交易數據集 154

11.2.2 識別頻繁項集 155

11.2.3 生成關聯規則 156

11.3 可視化關聯規則 157

11.4 從關聯規則獲得可操作信息 160

11.4.1 生成推薦信息 160

11.4.2 基於關聯規則的折扣規劃 161

11.5 總結 163

第 12章 數據分析的機器學習 164

12.1 為什麽選擇機器學習 164

12.2 機器學習的類型 165

12.2.1 有監督學習 165

12.2.2 無監督學習 166

12.3 機器學習的工作原理 166

12.3.1 訓練數據 166

12.3.2 統計模型 167

12.3.3 預測數據 167

12.4 情感分析示例:產品評論分類 168

12.4.1 獲取產品評論 168

12.4.2 清理數據 169

12.4.3 拆分和轉換數據 171

12.4.4 訓練模型 173

12.4.5 評估模型 173

12.5 預測股票走勢 175

12.5.1 獲取數據 176

12.5.2 從連續數據中提取特徵 177

12.5.3 生成輸出變量 178

12.5.4 訓練和評估模型 179

12.6 總結 180