産品特色
編輯推薦
“學習pandas和matplotlib的很好的專業入門材料。”
“書如其名,內容充實、實用,例子有趣吸引人。如果你想利用Python進行數據分析的話,這本書很閤適。”
瞭解Python在信息處理、管理和檢索方麵的強大功能
學會如何利用Python及其衍生工具處理、分析數據
詳盡探究三個真實Python數據分析案例,將理論付諸實踐
內容簡介
Python 簡單易學,擁有豐富的庫,並且具有極強的包容性。本書展示瞭如何利用Python 語言的強大功能,以小的編程代價進行數據的提取、處理和分析,主要內容包括:數據分析和Python 的基本介紹,NumPy 庫,pandas 庫,如何使用pandas 讀寫和提取數據,用matplotlib 庫和scikit-learn 庫分彆實現數據可視化和機器學習,以實例演示如何從原始數據獲得信息、D3 庫嵌入和手寫體數字的識彆。
作者簡介
作者簡介
Fabio Nelli
IRBM科學園IT科學應用專傢,曾為IBM、EDS等企業提供谘詢。目前正在開發Java應用,對接科學儀器和Oracle數據庫,生成數據和Web服務器應用,為研究人員提供實時分析結果。他還是Meccanismo Complesso社區(www.meccanismocomplesso.org)的項目協調人。
譯者簡介
杜春曉
英語語言文學學士,軟件工程碩士。其他譯著有《電子達人——我的**本Raspberry Pi入門手冊》和《Python數據挖掘入門與實踐》。新浪微博:@宜_生。
目錄
目錄
緻謝
譯者序
第1 章 數據分析簡介 1
1.1 數據分析 1
1.2 數據分析師的知識範疇 2
1.2.1 計算機科學 2
1.2.2 數學和統計學 3
1.2.3 機器學習和人工智能 3
1.2.4 數據來源領域 3
1.3 理解數據的性質 4
1.3.1 數據到信息的轉變 4
1.3.2 信息到知識的轉變 4
1.3.3 數據的類型 4
1.4 數據分析過程 4
1.4.1 問題定義 5
1.4.2 數據抽取 6
1.4.3 數據準備 6
1.4.4 數據探索和可視化 7
1.4.5 預測模型 7
1.4.6 模型評估 8
1.4.7 部署 8
1.5 定量和定性數據分析 9
1.6 開放數據 9
1.7 Python 和數據分析 11
1.8 結論 11
第2 章 Python 世界簡介 12
2.1 Python——編程語言 12
2.2 Python——解釋器 13
2.2.1 Cython 14
2.2.2 Jython 14
2.2.3 PyPy 14
2.3 Python 2 和Python 3 14
2.4 安裝Python 15
2.5 Python 發行版 15
2.5.1 Anaconda 15
2.5.2 Enthought Canopy 16
2.5.3 Python(x,y) 17
2.6 使用Python 17
2.6.1 Python shell 17
2.6.2 運行完整的Python 程序 17
2.6.3 使用IDE 編寫代碼 18
2.6.4 跟Python 交互 18
2.7 編寫Python 代碼 18
2.7.1 數學運算 18
2.7.2 導入新的庫和函數 19
2.7.3 函數式編程 21
2.7.4 縮進 22
2.8 IPython 23
2.8.1 IPython shell 23
2.8.2 IPython Qt-Console 24
2.9 PyPI 倉庫——Python 包索引 25
2.10 多種Python IDE 26
2.10.1 IDLE 26
2.10.2 Spyder 27
2.10.3 Eclipse(pyDev) 27
2.10.4 Sublime 28
2.10.5 Liclipse 29
2.10.6 NinjaIDE 29
2.10.7 Komodo IDE 29
2.11 SciPy 30
2.11.1 NumPy 30
2.11.2 pandas 30
2.11.3 matplotlib 31
2.12 小結 31
第3 章 NumPy 庫 32
3.1 NumPy 簡史 32
3.2 NumPy 安裝 32
3.3 ndarray:NumPy 庫的心髒 33
3.3.1 創建數組 34
3.3.2 數據類型 34
3.3.3 dtype 選項 35
3.3.4 自帶的數組創建方法 36
3.4 基本操作 37
3.4.1 算術運算符 37
3.4.2 矩陣積 38
3.4.3 自增和自減運算符 39
3.4.4 通用函數 40
3.4.5 聚閤函數 40
3.5 索引機製、切片和迭代方法 41
3.5.1 索引機製 41
3.5.2 切片操作 42
3.5.3 數組迭代 43
3.6 條件和布爾數組 45
3.7 形狀變換 45
3.8 數組操作 46
3.8.1 連接數組 46
3.8.2 數組切分 47
3.9 常用概念 49
3.9.1 對象的副本或視圖 49
3.9.2 嚮量化 50
3.9.3 廣播機製 50
3.10 結構化數組 52
3.11 數組數據文件的讀寫 53
3.11.1 二進製文件的讀寫 54
3.11.2 讀取文件中的列錶形式數據 54
3.12 小結 55
第4 章 pandas 庫簡介 56
4.1 pandas:Python 數據分析庫 56
4.2 安裝 57
4.2.1 用Anaconda 安裝 57
4.2.2 用PyPI 安裝 58
4.2.3 在Linux 係統的安裝方法 58
4.2.4 用源代碼安裝 58
4.2.5 Windows 模塊倉庫 59
4.3 測試pandas 是否安裝成功 59
4.4 開始pandas 之旅 59
4.5 pandas 數據結構簡介 60
4.5.1 Series 對象 60
4.5.2 DataFrame 對象 66
4.5.3 Index 對象 72
4.6 索引對象的其他功能 74
4.6.1 更換索引 74
4.6.2 刪除 75
4.6.3 算術和數據對齊 77
4.7 數據結構之間的運算 78
4.7.1 靈活的算術運算方法 78
4.7.2 DataFrame 和Series 對象之間的運算 78
4.8 函數應用和映射 79
4.8.1 操作元素的函數 79
4.8.2 按行或列執行操作的函數 80
4.8.3 統計函數 81
4.9 排序和排位次 81
4.10 相關性和協方差 84
4.11 NaN 數據 85
4.11.1 為元素賦NaN 值 85
4.11.2 過濾NaN 86
4.11.3 為NaN 元素填充其他值 86
4.12 等級索引和分級 87
4.12.1 重新調整順序和為層級排序 89
4.12.2 按層級統計數據 89
4.13 小結 90
第5 章 pandas:數據讀寫 91
5.1 I/O API 工具 91
5.2 CSV 和文本文件 92
5.3 讀取CSV 或文本文件中的數據 92
5.3.1 用RegExp 解析TXT 文件 94
5.3.2 從TXT 文件讀取部分數據 96
5.3.3 往CSV 文件寫入數據 97
5.4 讀寫HTML 文件 98
5.4.1 寫入數據到HTML 文件 99
5.4.2 從HTML 文件讀取數據 100
5.5 從XML 讀取數據 101
5.6 讀寫Microsoft Excel 文件 103
5.7 JSON 數據 105
5.8 HDF5 格式 107
5.9 pickle——Python 對象序列化 108
5.9.1 用cPickle 實現Python 對象序列化 109
5.9.2 用pandas 實現對象序列化 109
5.10 對接數據庫 110
5.10.1 SQLite3 數據讀寫 111
5.10.2 PostgreSQL 數據讀寫 112
5.11 NoSQL 數據庫MongoDB 數據讀寫 114
5.12 小結 116
第6 章 深入pandas:數據處理 117
6.1 數據準備 117
6.2 拼接 122
6.2.1 組閤 124
6.2.2 軸嚮鏇轉 125
6.2.3 刪除 127
6.3 數據轉換 128
6.3.1 刪除重復元素 128
6.3.2 映射 129
6.4 離散化和麵元劃分 132
6.5 排序 136
6.6 字符串處理 137
6.6.1 內置的字符串處理方法 137
6.6.2 正則錶達式 139
6.7 數據聚閤 140
6.7.1 GroupBy 141
6.7.2 實例 141
6.7.3 等級分組 142
6.8 組迭代 143
6.8.1 鏈式轉換 144
6.8.2 分組函數 145
6.9 高級數據聚閤 145
6.10 小結 148
第7 章 用matplotlib 實現數據可視化 149
7.1 matplotlib 庫 149
7.2 安裝 150
7.3 IPython 和IPython QtConsole 150
7.4 matplotlib 架構 151
7.4.1 Backend 層 152
7.4.2 Artist 層 152
7.4.3 Scripting 層(pyplot) 153
7.4.4 pylab 和pyplot 153
7.5 pyplot 154
7.5.1 生成一幅簡單的交互式圖錶 154
7.5.2 設置圖形的屬性 156
7.5.3 matplotlib 和NumPy 158
7.6 使用kwargs 160
7.7 為圖錶添加更多元素 162
7.7.1 添加文本 162
7.7.2 添加網格 165
7.7.3 添加圖例 166
7.8 保存圖錶 168
7.8.1 保存代碼 169
7.8.2 將會話轉換為HTML 文件 170
7.8.3 將圖錶直接保存為圖片 171
7.9 處理日期值 171
7.10 圖錶類型 173
7.11 綫性圖 173
7.12 直方圖 180
7.13 條狀圖 181
7.13.1 水平條狀圖 183
7.13.2 多序列條狀圖 184
7.13.3 為pandas DataFrame 生成多序列條狀圖 185
7.13.4 多序列堆積條狀圖 186
7.13.5 為pandas DataFrame 繪製堆積條狀圖 189
7.13.6 其他條狀圖 190
7.14 餅圖 190
7.15 高級圖錶 193
7.15.1 等值綫圖 193
7.15.2 極區圖 195
7.16 mplot3d 197
7.16.1 3D 麯麵 197
7.16.2 3D 散點圖 198
7.16.3 3D 條狀圖 199
7.17 多麵闆圖形 200
7.17.1 在其他子圖中顯示子圖 200
7.17.2 子圖網格 202
7.18 小結 204
第8 章 用scikit-learn 庫實現機器學習 205
8.1 scikit-learn 庫 205
8.2 機器學習 205
8.2.1 有監督和無監督學習 205
8.2.2 訓練集和測試集 206
8.3 用scikit-learn 實現有監督學習 206
8.4 Iris 數據集 206
8.5 K-近鄰分類器 211
8.6 Diabetes 數據集 214
8.7 綫性迴歸:最小平方迴歸 215
8.8 支持嚮量機 219
8.8.1 支持嚮量分類 219
8.8.2 非綫性SVC 223
8.8.3 繪製SVM 分類器對Iris 數據集的分類效果圖 225
8.8.4 支持嚮量迴歸 227
8.9 小結 229
第9 章 數據分析實例——氣象數據 230
9.1 待檢驗的假設:靠海對氣候的影響 230
9.2 數據源 233
9.3 用IPython Notebook 做數據分析 234
9.4 風嚮頻率玫瑰圖 246
9.5 小結 251
第10 章 IPython Notebook 內嵌JavaScript 庫D3 252
10.1 開放的人口數據源 252
10.2 JavaScript 庫D3 255
10.3 繪製簇狀條狀圖 259
10.4 地區分布圖 262
10.5 2014 年美國人口地區分布圖 266
10.6 小結 270
第11 章 識彆手寫體數字 271
11.1 手寫體識彆 271
11.2 用scikit-learn 識彆手寫體數字 271
11.3 Digits 數據集 272
11.4 學習和預測 274
11.5 小結 276
附錄A 用LaTeX 編寫數學錶達式 277
附錄B 開放數據源 287
【書名】Python數據分析實戰 簡介 在這個數據爆炸的時代,洞察力就是力量。無論是商業決策、科學研究,還是技術創新,都越來越依賴於對海量數據的深入理解和有效利用。而Python,憑藉其簡潔的語法、強大的庫生態和廣泛的應用場景,已經成為數據分析領域的首選語言。本書《Python數據分析實戰》正是這樣一本旨在幫助您掌握Python數據分析核心技能,並將理論知識轉化為實際應用能力的著作。 本書區彆於市麵上許多泛泛而談或僅側重於理論概念的教材,它將帶您走進真實世界的數據分析場景,通過一係列精心設計的項目和案例,讓您親手實踐數據獲取、清洗、轉換、可視化和建模的全過程。我們相信,隻有通過“實戰”,纔能真正領悟數據分析的精髓,培養解決實際問題的能力。 核心內容概覽: 第一部分:Python數據分析基礎 在正式開啓數據分析之旅前,我們需要打下堅實的基礎。這部分內容將從Python語言本身以及其在數據分析中扮演關鍵角色的核心庫入手,確保您具備進行後續深入學習的必備知識。 Python語言入門與進階: 我們將從Python的基本語法、數據類型、控製流、函數等內容開始,逐步深入到麵嚮對象編程、模塊化設計等更高級的概念。強調代碼的可讀性、效率和復用性,培養良好的編程習慣。您將學會如何編寫簡潔、高效且易於維護的Python代碼,為後續的數據分析操作奠定堅實基礎。 NumPy:數值計算的基石: NumPy是Python科學計算的核心庫,提供瞭強大的N維數組對象和大量用於處理這些數組的函數。您將深入學習NumPy數組的創建、索引、切片、運算以及各種數學和邏輯操作。理解NumPy如何高效地處理大規模數值數據,是進行高效數據分析的關鍵一步。我們將通過實際案例演示如何利用NumPy進行矩陣運算、統計計算等,體會其在性能上的優勢。 Pandas:數據處理與分析的利器: Pandas是Python數據分析的靈魂。本書將花費大量篇幅詳細講解Pandas的核心數據結構——Series和DataFrame。您將掌握數據的導入與導齣(CSV, Excel, SQL等)、數據的選擇與過濾、數據的清洗與轉換(缺失值處理、重復值刪除、數據類型轉換)、數據的閤並與連接(merge, join, concat)、數據的分組與聚閤(groupby)、數據的重塑(pivot, melt)等關鍵操作。通過生動直觀的案例,您將學會如何高效地處理和操縱各種結構化數據,為後續的分析打下堅實基礎。 Matplotlib與Seaborn:數據可視化的藝術: “一圖勝韆言”。有效的數據可視化能夠幫助我們直觀地理解數據模式、趨勢和異常值。我們將係統介紹Matplotlib,掌握繪製各種基本圖錶(摺綫圖、散點圖、柱狀圖、餅圖等)的方法。在此基礎上,我們將引入Seaborn,一個基於Matplotlib的更高級數據可視化庫,它提供瞭更美觀、更統計學友好的圖錶,如熱力圖、箱綫圖、小提琴圖、分布圖等。您將學會如何根據不同的分析目的選擇閤適的圖錶,並進行個性化定製,讓數據“說話”。 第二部分:數據分析實戰項目 理論學習固然重要,但真正掌握數據分析技能的關鍵在於將其應用於實際問題。這部分內容將帶領您通過一係列精心挑選的、貼近真實業務場景的項目,將前一階段學到的知識融會貫通,解決實際挑戰。 項目一:電商用戶行為分析: 數據獲取與初步探索: 模擬電商平颱的用戶行為日誌數據,學習如何加載、查看數據概覽、理解各字段含義。 數據清洗與預處理: 處理缺失的用戶信息、異常的購買時間、重復的訂單記錄等。 用戶行為特徵提取: 計算用戶的活躍度、購買頻率、客單價、最近購買時間等關鍵指標。 用戶分群與畫像: 利用RFM模型(Recency, Frequency, Monetary)對用戶進行分群,並分析不同用戶群體的行為特徵和偏好。 可視化分析: 繪製用戶活躍度趨勢圖、購買力分布圖、用戶生命周期圖等,為運營決策提供數據支持。 實際應用: 如何根據用戶畫像製定個性化營銷策略、提升用戶留存率。 項目二:金融市場數據分析與趨勢預測: 數據獲取: 從金融數據API(如Yahoo Finance)或公開數據集獲取股票、加密貨幣等市場數據。 數據清洗與處理: 處理股票價格的復權、缺失的交易日數據、異常值等。 技術指標計算: 計算常用的技術指標,如移動平均綫(MA)、相對強弱指數(RSI)、MACD等。 可視化分析: 繪製股票價格走勢圖、交易量柱狀圖、技術指標疊加圖等,直觀展現市場動態。 簡單趨勢預測: 介紹基於時間序列的簡單預測方法(如ARIMA模型),並展示如何利用Python庫實現。 風險提示: 強調金融市場分析的復雜性和預測的局限性。 項目三:社交媒體文本情感分析: 文本數據獲取: 爬取或加載社交媒體上的評論、帖子等文本數據。 文本預處理: 分詞、去除停用詞、詞形還原/詞乾提取、文本嚮量化(如TF-IDF、Word Embeddings)。 情感分析模型構建: 介紹基於機器學習(如樸素貝葉斯、支持嚮量機)或深度學習(如RNN、Transformer)的情感分類方法。 結果可視化: 統計不同情感類彆的比例,繪製情感分布圖、詞雲圖,展示與情感相關的熱門詞匯。 實際應用: 如何分析用戶對産品、服務或事件的評價,為品牌管理和輿情監控提供依據。 項目四:客戶流失預測: 問題定義與數據準備: 明確客戶流失的定義,準備包含客戶屬性、消費行為、服務交互等信息的客戶數據集。 特徵工程: 從原始數據中提取與客戶流失相關的有效特徵,如用戶近三個月的消費金額變化、服務投訴次數、使用時長等。 模型選擇與訓練: 介紹常用的二分類模型,如邏輯迴歸、決策樹、隨機森林、梯度提升樹(XGBoost, LightGBM)。 模型評估: 使用準確率、精確率、召迴率、F1分數、AUC等指標評估模型性能。 模型解釋與洞察: 分析模型給齣的重要特徵,理解導緻客戶流失的關鍵因素。 應用場景: 如何識彆潛在流失客戶,並製定有針對性的挽留策略。 第三部分:高級主題與實踐進階 在掌握瞭基礎和核心項目後,本書還將引導您探索更高級的數據分析技術和相關工具,以應對更復雜的數據挑戰。 數據庫交互: 學習如何使用Python與關係型數據庫(如MySQL, PostgreSQL)和非關係型數據庫(如MongoDB)進行連接、查詢和數據操作。掌握SQL語句在Python中的應用,以及使用Pandas讀取數據庫數據。 數據可視化深入: 探索更豐富的可視化庫,如Plotly(交互式圖錶)、Bokeh(Web端交互可視化),以及如何將可視化結果嵌入Web應用。 大數據處理基礎(可選): 簡要介紹處理大規模數據集的工具和概念,如Dask或PySpark入門,讓您對大數據生態有初步認識。 模型部署與集成(簡介): 簡要介紹如何將訓練好的模型部署到生産環境中,使其能夠為實際應用提供服務。 案例研究與最佳實踐: 整閤前述內容,通過一些更綜閤的案例,展示如何進行端到端的數據分析流程,並總結數據分析過程中的常見問題及應對策略。 本書的特色: 強調“實戰”: 全書圍繞實際項目展開,讓您在解決問題的過程中學習和鞏固知識。 由淺入深: 從Python基礎到復雜項目,循序漸進,適閤不同層次的學習者。 代碼導嚮: 提供大量可運行的Python代碼示例,便於模仿和實踐。 案例豐富: 覆蓋電商、金融、社交媒體等多個熱門領域,貼近實際應用。 工具全麵: 涵蓋Python數據分析領域最核心、最常用的庫。 注重思維: 不僅教“怎麼做”,更引導“為什麼這麼做”,培養解決問題的分析思維。 通過閱讀《Python數據分析實戰》,您將不僅能夠熟練運用Python及其強大的數據分析庫,更重要的是,您將獲得獨立分析數據、挖掘洞察、解決實際問題的能力,從而在您的學習、工作或研究領域中脫穎而齣,成為一名真正懂得如何從數據中創造價值的數據分析師。現在,就讓我們一起踏上這段激動人心的Python數據分析實戰之旅吧!