數據時代的來臨帶動了新一波的智能革命,數據與算法驅動了各個領域的改變。在幾個市場熱門的討論議題中,都可以看到數據應用扮演的角色。在面對真實世界的數據時,有許許多多的事情需要考慮。本書試圖從最務實的角度開始,結合理論與實踐去探索數據科學的真實世界,幫助讀者一步一步地培養數據時代下的思維與技術。本書將從基礎的 Python 編程開始,以數據分析的流程為主軸一步一步地解析,然后展開介紹數據收集、數據前處理、特征工程、探索式分析等。本書系統性地從函數庫開始學習,并拓展到不同的應用場景。
本書實用性強,提供數據分析所必需的編程技能的培訓,以及常見第三方軟件和庫的使用方法;以數據科學家、數據分析師等數據應用工作的實踐經驗作為培養目標,適合對 Python與數據分析有興趣的人閱讀。
張維元,畢業於中國臺灣清華大學,主要研究領域為大數據應用。目前在多家初創公司擔任工程師及技術顧問,曾擔任大型技術會議的演講嘉賓與軟件課程講師。擅長網站開發及數據科學,精通Python與JavaScript語言。
前言
為什麼要寫這本書?
數據時代下,數據將驅動很多領域產生有趣的新進展。數據的使用也變成了一個實用的技能,不再僅限於計算機或統計學行業。在這個技術的推動之下,任何領域的人或多或少都應該要培養數據的思考與使用能力。本書將以淺顯易懂的內容與實務場景,逐步培養數據開發者的相應技能。
本書採用Python作為主要的程序語言,Python語言擁有簡單、易用、易上手、社區資源豐富等優點,特別在數據分析這個領域,它有很多優秀的第三方套件,能夠幫助開發者專注項目本身。本書與其他圖書的主要區別是,先系統分析幾個數據分析中的主流套件,再進一步將場景拉回實際應用。本書以數據分析的流程為主軸一步一步解析各個環節,包括數據收集、數據前處理、特徵工程、探索式分析等,讓讀者全面、深入、透徹地理解Python的數據分析套件,並將其用於實際應用。
本書有何特色?
1. 涵蓋Python用於數據分析的主流工具
本書涵蓋了數據收集的Request、BeautifulSoup、Seleium套件,以及高效能的數學運算工具NumPy、串起數據與程序分析的Pandas,還有用於可視化呈現數據的Matplotlib。
2. 解析與深入探討數據分析的步驟
本書將套件與工具應用到不同的使用情境,對數據收集、數據前處理、特徵工程、探索式分析等每個環節的實踐內容進行深入探討。
3. 大量的範例與實用代碼
本書在每個章節都提供大量的範例作為參考,代碼都來自真實的項目。通過對每一段代碼的詳細了解,讀者可以充分理解其作用,並且能夠重復地將這些代碼應用於項目中。
4. 真實的案例解析
本書最後一章提供了3個實戰案例。讀者可以將本書所介紹的思考方法與實操代碼用於真實項目中,從零開始思考解法。
5. 提供完善的技術支持和售後服務
本書提供了技術支持郵箱。讀者在閱讀本書的過程中有任何疑問都可以通過該郵箱獲得幫助。
本書內容及知識體系
第1篇數據分析與Python程序語言(第1~2章)
本書第1章從數據分析的發展說起,從早期的統計分析到現今的大數據與人工智能發展,介紹計算機科學的演進如何帶動數據時代的到來;接著闡述數據項目分析流程應如何制定,以及Python與數據分析的關係;最後介紹數據科學家必備的知識與技能。第2章介紹與Python相關的基礎知識,為後續深入學習Python打下基礎。
第2篇數據的存取與使用(第3~4章)
第3章介紹常見的數據來源與獲取方式,歸納成幾種常見的形式,即文件、API與網頁爬蟲。第4章深入討論網絡爬蟲的實操技術,從認識HTTP網站框開始到爬蟲應用,全方位解析網絡爬蟲相關內容。
第3篇常見數據分析工具(第5章)
第5章介紹3個將 Python 用於數據分析的主流套件,分別是高效能的數學運算工具NumPy、串起數據與程序設計工具Pandas和可視化呈現數據工具Matplotlib,並系統性地介紹這3個主流套件的使用方法與其核心目標。
第4篇數據分析流程(第6~9章)
第6~9章,依照數據分析的流程—“定義問題與觀察數據”“數據清理與類型轉換”“數據探索與可視化”“特徵工程”4個環節,解析如何使用 Python 與搭配適當的工具進行數據分析。
第5篇數據分析流程示例應用(第10章)
本書第10章提供了3個項目實戰案例,利用幾個真實的數據集實踐本書前面討論的各種方法。
適合閱讀本書的讀者
需要全面學習 Python 數據分析的人員。
對數據分析、人工智能有興趣的人員。
希望能夠從零開始完成數據分析項目的人員。
即將成為與數據分析相關的從業人員。
需要一本數據分析訓練手冊的人員。
閱讀本書的建議
沒有Python基礎的讀者,建議從第2章開始閱讀,先培養基礎的程序能力。
有一定Python程序基礎的讀者,可以根據實際情況有重點地選擇閱讀各個模塊和項目案例。
對於每一個使用情境和範例代碼,自己先思考一下再閱讀,並且在每個案例後都嘗試其他的優化方式,能夠達到最佳的學習效果。
可以了解書中的每一個案例,然後套用不同的數據集實現類似的過程。
第1章 數據分析與Python
1.1 數據分析概述 002
1.1.1 數據分析興起與發展的時代背景 002
1.1.2 什麼是數據分析 003
1.1.3 數據分析的發展方向 003
1.1.4 大數據與厚數據 005
1.1.5 數據挖掘、機器學習與深度學習 006
1.2 數據項目 007
1.2.1 定義數據項目 008
1.2.2 數據項目團隊的組成 008
1.2.3 數據項目的分析流程 009
1.3 Python與數據分析的關係 011
1.3.1 為什麼要用Python進行數據分析 011
1.3.2 Python的數據分析系統 011
1.4 數據分析人員的學習地圖 012
1.4.1 怎樣成為數據分析人員 012
1.4.2 技能樹養成之路 013
第2章 Python基礎
2.1 Python簡介 016
2.1.1 執行Python程序的主要方式 017
2.1.2 編寫Python程序 017
2.1.3 相關的開發管理工具 018
2.2 開發環境準備 020
2.2.1 Anaconda 020
2.2.2 Jupyter Notebook 020
2.3 一個簡單的範例 022
2.4 數據類型 025
2.4.1 數值 025
2.4.2 字符串 027
2.4.3 容器 029
2.5 數據運算 034
2.6 流程控制 035
2.6.1 條件判斷 035
2.6.2 while循環 035
2.6.3 for循環 035
2.6.4 循環中斷 036
2.7 函數與類 037
2.7.1 函數 037
2.7.2 類 039
2.8 錯誤處理 040
第3章 數據來源與獲取
3.1 數據來源與數據格式 044
3.1.1 數據來源 044
3.1.2 數據格式 045
3.2 開放數據及其來源 045
3.2.1 什麼是開放數據 046
3.2.2 常見的開放數據來源 046
3.3 如何使用Python存取數據 047
3.3.1 下載文件 047
3.3.2 讀寫文件 048
3.3.3 自動讀寫文件 049
3.3.4 讀文件範例 049
3.4 API數據來源與請求串接存取 054
3.4.1 Requests庫 054
3.4.2 常見的API串接手法 056
第4章 網絡爬蟲的技術和實戰
4.1 認識HTTP網站架構與數據溝通方式 062
4.1.1 網站前後端運作架構 062
4.1.2 網頁結構解析 063
4.1.3 靜態網頁與動態網頁 066
4.2 網頁爬蟲之靜態網頁篇 067
4.2.1 靜態網頁概述 067
4.2.2 使用Requests取得網頁數據 068
4.2.3 使用BeautifulSoup解析網頁 070
4.2.4 靜態網頁爬蟲的實際案例 072
4.3 網頁爬蟲之動態網頁篇 073
4.3.1 動態網頁概述 073
4.3.2 自動化瀏覽器交互 074
4.3.3 模擬調用API 075
4.3.4 動態網頁爬蟲的實際案例 075
4.4 實踐中的爬蟲應用 077
4.4.1 其他Python爬蟲工具 077
4.4.2 防爬蟲機制與處理策略 077
4.4.3 自動持續更新的爬蟲程序 079
第5章 常見的數據分析工具
5.1 高效能的數學運算工具NumPy 082
5.1.1 貼近數學向量的數據結構NdArray 082
5.1.2 從一個簡單的例子出發 084
5.1.3 數組的建立 084
5.1.4 數據選取 086
5.1.5 基本操作與運算 087
5.1.6 自帶函數與通用函數 089
5.1.7 迭代與循環 091
5.1.8 利用數組進行數據處理 093
5.2 串起數據與程序分析工具Pandas 093
5.2.1 面向數據集的數據結構:Series與DataFrame 094
5.2.2 建立物件 094
5.2.3 數據選取 097
5.2.4 插入與丟棄數據 099
5.2.5 算術運算和數據對齊 101
5.2.6 排序 102
5.2.7 迭代與重復操作 103
5.2.8 數據合並與重組 104
5.2.9 存取外部數據 107
5.3 可視化呈現數據工具Matplotlib 107
5.3.1 Matplotlib與pyplot 108
5.3.2 圖表信息 110
5.3.3 處理多個圖形 112
5.3.4 完整的Matplotmap圖 113
5.3.5 其他圖表 115
第6章 定義問題與觀察數據
6.1 如何定義一個數據項目 122
6.2 如何學習並開始一個數據項目 123
6.2.1 如何學習數據分析 123
6.2.2 如何開始一個數據項目 124
6.3 觀察數據的N件事 125
6.3.1 準備數據 125
6.3.2 明確數據的關注點 125
6.3.3 觀察數據的步驟 126
6.4 示範如何觀察數據 128
6.4.1 房屋數據集 128
6.4.2 犯罪數據集 132
第7章 數據清理與類型轉換
7.1 清理缺失或錯誤數據 138
7.1.1 可以學習的數據 138
7.1.2 從外部數據到程序 138
7.1.3 哪些是需要被處理的數據 139
7.2 選取和篩選數據 139
7.2.1 DataFrame的基本操作 139
7.2.2 選取和篩選數據的方式 140
7.3 定義缺失值與查閱數據 145
7.3.1 定義缺失值 146
7.3.2 查閱欄位是否有缺失值 146
7.4 缺失值處理策略 147
7.4.1 用內建函數處理缺失值 147
7.4.2 缺失值處理策略實例 147
7.5 數據類型及其轉換 149
7.5.1 數據類型 149
7.5.2 數據類型轉換 149
第8章 數據探索與可視化
8.1 數據探索概述 154
8.1.1 什麼是數據探索 154
8.1.2 身為數據分析者的敏銳 154
8.1.3 常見的數據探索方法 154
8.1.4 進行數據探索的目的 155
8.2 統合性數據描述 155
8.3 利用描述統計認識數據 156
8.3.1 描述統計 156
8.3.2 統計量分析 157
8.3.3 相關性分析 158
8.3.4 數據聚合 159
8.3.5 數據透視表與交叉統計表 160
8.4 利用可視化圖表探索數據 162
8.4.1 數據可視化與探索圖 162
8.4.2 常見的圖表實例 162
8.5 數據探索實戰分享 165
8.5.1 2013年美國社區調查 165
8.5.2 波士頓房屋數據集 165
第9章 特徵工程
9.1 特徵工程概述 170
9.1.1 特徵工程是什麼 170
9.1.2 為什麼要做特徵工程 170
9.1.3 如何做特徵工程 171
9.2 異常值處理 171
9.2.1 異常值檢查 171
9.2.2 處置異常值的方式 173
9.3 特徵縮放 173
9.3.1 正規化 173
9.3.2 標準化 174
9.4 數據轉換 174
9.4.1 將連續數據轉換為離散數據 175
9.4.2 將類別數據轉換為數值數據 175
9.5 特徵操作 178
9.5.1 特徵重建 178
9.5.2 連續特徵組合 178
9.5.3 離散特徵組合 178
9.6 特徵選擇 179
9.6.1 過濾式 179
9.6.2 包裹式 180
9.6.3 嵌入式 181
9.7 特徵提取與降維 182
9.7.1 維度災難 182
9.7.2 主成分分析 182
9.7.3 線性判別分析 183
第10章 示例應用
10.1 示例應用1:泰坦尼克號 186
10.1.1 使用數據集與背景 186
10.1.2 定義問題與觀察數據 186
10.1.3 數據清理與類型轉換 189
10.1.4 數據探索與可視化 193
10.1.5 特徵工程 198
10.1.6 機器學習 200
10.2 示例應用2:房價預測 202
10.2.1 使用數據集與背景 202
10.2.2 定義問題與觀察數據 203
10.2.3 數據清理與類型轉換 203
10.2.4 數據探索與可視化 206
10.2.5 特徵工程 207
10.2.6 機器學習 207
10.3 示例應用3:Quora 208
10.3.1 使用數據集與背景 208
10.3.2 定義問題與觀察數據 209
10.3.3 特徵工程與數據探索 209
大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。
特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。
無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。
為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。
若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。