Python數(shù)據(jù)分析與可視化從入門到精通
本書以“零基礎(chǔ)”為起點,系統(tǒng)地介紹了Python在數(shù)據(jù)處理與可視化分析方面的應(yīng)用。全書共分3篇12章內(nèi)容,具體安排如下。
第1篇:基礎(chǔ)篇,包括第1-4章。第1章 先來認識一下大蟒:Python入門。第2章 磨好利牙,子彈上膛:準備好工作環(huán)境。第3章 大蟒的基本技能之一:Python語言基礎(chǔ)。第4章 大蟒的基本技能之二:Python語言進階。
第2篇:應(yīng)用篇,包括第5-11章。第5章 給大蟒找食:Python的數(shù)據(jù)存取操作。第6章 洗干凈了再吃:使用Python預(yù)處理數(shù)據(jù)。第7章 什么食物有營養(yǎng):大數(shù)據(jù)分析及可視化基礎(chǔ)知識。第8章 大蟒神通之一:使用matplotlib繪制基礎(chǔ)圖形。第9章 大蟒神通之二:使用matplotlib美化和修飾圖形。第10章 大蟒神通之三:數(shù)據(jù)可視化之3D圖形應(yīng)用。第11章 大蟒神通之四:使用圖像和地圖繪制圖表。
第3篇:實戰(zhàn)篇,第12章 綜合案例:全國縣級市天氣預(yù)報數(shù)據(jù)可視化分析。以抓取中國天氣網(wǎng)相關(guān)數(shù)據(jù)存入MySQL數(shù)據(jù)庫,并繪制相應(yīng)圖形為主線,綜合本書各章知識點介紹了數(shù)據(jù)采集、清理、保存以及繪制可視化圖形的基本步驟和方法。
本書既適合希望從事Python數(shù)據(jù)處理與可視化的用戶學(xué)習(xí),也適合廣大職業(yè)院校作為相關(guān)專業(yè)教材,還可作為社會培訓(xùn)班的參考用書。
高博,高級工程師,IT雜家。主要研究方向為云計算與大數(shù)據(jù)、數(shù)據(jù)可視化等,熟悉.Net、PHP、Python,DevOps,MySQL、SQLServer等技術(shù)和工具。作為第一作者編寫了《Discuz!社區(qū)管理員實用教程》《代碼的力量——Discuz!源碼分析與插件開發(fā)實例進階》《PHP+MySQL+AJAX Web開發(fā)給力起飛》,參與編寫了《Web 2.0社區(qū)網(wǎng)站實用寶典》《ASP.NET 4.0 MVC敏捷開發(fā)給力起飛》《Java Web應(yīng)用開發(fā)給力起飛》等書籍。主持省部級縱向課題3項,參與縱向、橫向課題16項,獲得軟件著作權(quán)12項。
劉冰,博士研究生,重慶郵電大學(xué)計算機科學(xué)與技術(shù)學(xué)院/人工智能學(xué)院教師,先后翻譯出版程序設(shè)計、圖像處理、計算機視覺等領(lǐng)域著作4部,編寫教材5部,獲發(fā)明專利2項,發(fā)表SCI/EI論文4篇,參與國家級、省部級項目3項。榮獲重慶郵電大學(xué)優(yōu)秀班主任、優(yōu)秀班導(dǎo)師、優(yōu)秀青年教師等榮譽稱號。
李力,畢業(yè)于西安交通大學(xué)計算機學(xué)院,現(xiàn)工作于教育考試招生戰(zhàn)線,曾長期在國防軍工單位從事網(wǎng)絡(luò)戰(zhàn)、信息戰(zhàn)研究,擅長需求分析與設(shè)計,參與縱、橫向課題12項,獲得軟件著作權(quán)4項。
第1篇 基礎(chǔ)篇
第1章 認識大蟒:Python快速入門 2
1.1 什么是大蟒(Python) 3
1.2 Python是位“年輕的老同志” 3
1.3 Python語言有什么特點 5
1.4 Python語言的應(yīng)用領(lǐng)域 7
★新手問答★ 8
本章小結(jié) 8
第2章 磨好利牙,子彈上膛:準備好工作環(huán)境 9
2.1 版本的比較與選擇 10
2.2 在Windows上安裝Python 14
2.2.1 下載安裝程序 15
2.2.2 圖解安裝步驟 17
2.3 在macOS上安裝Python 19
2.3.1 版本選擇 20
2.3.2 下載安裝程序 20
2.3.3 圖解安裝步驟 22
2.4 選擇合適的開發(fā)工具 26
2.4.1 Anaconda 26
2.4.2 Visual Studio 27
2.4.3 PyCharm 27
2.4.4 Eclipse 28
2.4.5 Komodo 29
2.4.6 Visual Studio Code/Sublime/EditPlus/UltraEdit 30
2.5 安裝所需的第三方組件(庫) 30
2.5.1 安裝Matplotlib、NumPy和SciPy 31
2.5.2 安裝Python Imaging Library(Pillow) 34
2.5.3 安裝Requests 35
2.5.4 安裝BeautifulSoup 36
2.5.5 安裝Pandas 37
2.5.6 安裝Basemap 39
2.5.7 安裝SQLAlchemy 40
★新手問答★ 42
★小試牛刀★ 42
本章小結(jié) 44
第3章 大蟒的基本技能之一:Python語言基礎(chǔ) 45
3.1 基本概念 46
3.1.1 變量 46
3.1.2 保留字 47
3.1.3 注釋 48
3.1.4 行與縮進 49
3.2 數(shù)據(jù)類型 50
3.2.1 Number 50
3.2.2 Bool 54
3.2.3 String 55
3.2.4 正則表達式 58
3.2.5 List 63
3.2.6 Tuple 69
3.2.7 Set 70
3.2.8 Dictionary 73
3.3 運算符 74
3.3.1 算術(shù)運算符 74
3.3.2 比較(關(guān)系)運算符 74
3.3.3 賦值運算符 75
3.3.4 邏輯運算符 76
3.3.5 位運算符 77
3.3.6 成員運算符 78
3.3.7 身份運算符 78
3.3.8 運算符優(yōu)先級 79
★新手問答★ 79
★小試牛刀★ 80
本章小結(jié) 80
第4章 大蟒的基本技能之二:Python語言進階 81
4.1 流程控制 82
4.1.1 條件語句 82
4.1.2 循環(huán)語句 85
4.1.3 break、continue和pass 87
4.2 異常處理 89
4.3 函數(shù) 92
4.3.1 函數(shù)的基本概念 92
4.3.2 變量作用域 99
4.3.3 迭代器和生成器 100
4.3.4 裝飾器 105
4.4 面向?qū)ο缶幊?107
4.4.1 類和對象 108
4.4.2 魔術(shù)方法 114
4.5 文件操作 116
★新手問答★ 119
★小試牛刀★ 119
本章小結(jié) 120
第2篇 應(yīng)用篇
第5章 給大蟒找食:Python的數(shù)據(jù)存取操作 122
5.1 餐前小食:文本文件的數(shù)據(jù)存取 123
5.1.1 基于分隔符的文本數(shù)據(jù)文件 123
5.1.2 基于JSON格式的文本文件 129
5.2 開胃菜:Excel文件的數(shù)據(jù)存取 132
5.2.1 Excel的模塊和庫 132
5.2.2 讀取Excel文件 133
5.2.3 生成Excel文件并寫入數(shù)據(jù) 135
5.3 主菜:寫一個爬蟲來收集網(wǎng)頁數(shù)據(jù) 136
5.3.1 爬蟲的概念 136
5.3.2 寫一個簡單的爬蟲 137
5.3.3 保存爬取到的數(shù)據(jù) 140
5.4 主菜:操作MySQL數(shù)據(jù)庫 141
5.4.1 MySQL數(shù)據(jù)庫是什么 142
5.4.2 選擇并安裝MySQL數(shù)據(jù)庫連接組件 142
5.4.3 連接到MySQL數(shù)據(jù)庫 143
5.4.4 把數(shù)據(jù)放進去 145
5.4.5 把數(shù)據(jù)拿出來 149
5.4.6 刪除和更新數(shù)據(jù) 151
5.5 甜點:ORM框架 153
★新手問答★ 159
★小試牛刀★ 160
本章小結(jié) 162
第6章 洗干凈了再吃:使用Python預(yù)處理數(shù)據(jù) 163
6.1 清洗和預(yù)處理數(shù)據(jù)的原因及方法 164
6.1.1 數(shù)據(jù)清洗和預(yù)處理的意義及原則 164
6.1.2 臟數(shù)據(jù)清洗方法 165
6.2 使用Pandas預(yù)處理數(shù)據(jù) 167
6.2.1 Pandas數(shù)據(jù)結(jié)構(gòu) 167
6.2.2 預(yù)處理數(shù)據(jù) 171
★新手問答★ 177
★小試牛刀★ 177
本章小結(jié) 182
第7章 有營養(yǎng)的食物:大數(shù)據(jù)分析及可視化基礎(chǔ)知識 183
7.1 大數(shù)據(jù)的概念 184
7.2 大數(shù)據(jù)分析 186
7.2.1 數(shù)據(jù)收集 186
7.2.2 數(shù)據(jù)存儲 186
7.2.3 資源管理與服務(wù)協(xié)調(diào) 187
7.2.4 計算引擎 187
7.2.5 數(shù)據(jù)分析 188
7.2.6 數(shù)據(jù)可視化 188
7.3 使用NumPy和SciPy快速處理數(shù)據(jù) 188
7.3.1 使用NumPy處理多維數(shù)組 188
7.3.2 使用SciPy完成高級數(shù)學(xué)計算 195
★新手問答★ 202
★小試牛刀★ 202
本章小結(jié) 206
第8章 大蟒神通之一:使用Matplotlib繪制基礎(chǔ)圖形 207
8.1 繪制簡單圖形 208
8.1.1 使用plot()繪制折線圖 208
8.1.2 使用bar()繪制柱狀圖 210
8.1.3 使用barh()繪制條形圖 214
8.1.4 使用hist()繪制直方圖 215
8.1.5 使用pie()繪制餅圖 218
8.1.6 使用polar()繪制雷達圖 220
8.1.7 使用scatter()繪制散點圖 221
8.1.8 使用stem()繪制棉棒圖 222
8.1.9 使用boxplot()繪制箱線圖 223
8.1.10 使用errorbar()繪制誤差棒圖 225
8.1.11 使用stackplot()繪制堆積折線圖 227
8.1.12 使用broken_barh()繪制間斷條形圖 228
8.1.13 使用step()繪制階梯圖 229
8.2 繪制高級圖形 231
8.2.1 對數(shù)圖 231
8.2.2 頻譜圖 232
8.2.3 矢量場流線圖 233
8.2.4 繪制兩個變量間的互相關(guān)圖形 234
★新手問答★ 235
★小試牛刀★ 236
本章小結(jié) 238
第9章 大蟒神通之二:使用Matplotlib美化和修飾圖形 239
9.1 調(diào)整坐標軸和刻度 240
9.1.1 設(shè)置坐標軸刻度 240
9.1.2 設(shè)置坐標軸的標簽文本 241
9.1.3 繪制刻度線的網(wǎng)格線 243
9.1.4 移動坐標軸的位置 244
9.2 添加標題、圖例和注釋文本 245
9.2.1 設(shè)置標題的展示樣式 246
9.2.2 設(shè)置圖例的展示樣式 248
9.2.3 添加注釋文本 249
9.3 設(shè)置線形和文本字體 251
9.3.1 設(shè)置線形樣式 251
9.3.2 設(shè)置文本屬性和字體屬性 253
9.4 使用顏色 258
9.4.1 使用顏色參數(shù) 258
9.4.2 使用色彩映射和添加顏色標尺 259
9.5 劃分畫布 262
★新手問答★ 263
★小試牛刀★ 264
本章小結(jié) 266
第10章 大蟒神通之三:數(shù)據(jù)可視化之3D圖形應(yīng)用 267
10.1 創(chuàng)建3D可視化圖表 268
10.1.1 3D柱狀圖和3D直方圖 268
10.1.2 3D線框圖、3D曲面圖和3D三翼面圖 270
10.2 使用Matplotlib創(chuàng)建動畫 273
★新手問答★ 275
★小試牛刀★ 276
本章小結(jié) 278
第11章 大蟒神通之四:圖像處理 279
11.1 使用Python Imaging Library處理圖像 280
11.2 生成CAPTCHA圖像 283
★新手問答★ 286
★小試牛刀★ 286
本章小結(jié) 288
第3篇 實戰(zhàn)篇
第12章 綜合案例:全國縣級市天氣預(yù)報的數(shù)據(jù)可視化分析 290
12.1 目標與計劃 291
12.1.1 具體目標 291
12.1.2 工作計劃 293
12.2 確定目標數(shù)據(jù) 293
12.3 試驗抓取數(shù)據(jù) 297
12.4 保存數(shù)據(jù)入庫 299
12.5 檢查清理數(shù)據(jù) 310
12.5.1 檢查數(shù)據(jù)完整性與合法性 310
12.5.2 清理或預(yù)處理數(shù)據(jù) 311
12.6 繪制圖形圖表 311
本章小結(jié) 314
附錄 315
附錄A Python命令行參數(shù)處理模塊argparse簡介 316
附錄B Python編程代碼的風(fēng)格 319
附錄C Python常見面試題精選 321