本書以構(gòu)建完整的知識體系為目標(biāo),按照從簡單到復(fù)雜的思路,貫穿了數(shù)據(jù)處理與挖掘的各個環(huán)節(jié),具體包括:Python快速入門、Python數(shù)據(jù)類型、Python常用模塊、Python數(shù)據(jù)獲取、Python數(shù)據(jù)挖掘基礎(chǔ)、Python數(shù)據(jù)挖掘算法、Python大數(shù)據(jù)挖掘和Python數(shù)據(jù)可視化。此外,針對各知識點,本書均設(shè)計了相應(yīng)的Python案例,并給出了實現(xiàn)代碼、效果圖以及相應(yīng)的解釋,以強化讀者對各知識點的理解與掌握。
本書可作為高等院校人工智能、計算機科學(xué)與技術(shù)、經(jīng)濟與金融等專業(yè)的教材,也可供大數(shù)據(jù)分析與處理等領(lǐng)域的技術(shù)人員學(xué)習(xí)使用,還可作為數(shù)據(jù)分析與挖掘研究人員的參考用書。
1.本書助力讀者使用Python編程語言分析數(shù)據(jù),并且能夠設(shè)計和應(yīng)用模型以在數(shù)據(jù)中提取知識,進而對其進行可視化處理;
2.任務(wù)驅(qū)動的知識學(xué)習(xí)過程,如結(jié)合數(shù)據(jù)挖掘知識探索一個地區(qū)最近房價波動的規(guī)律、天氣變化的規(guī)律、當(dāng)前大眾關(guān)心和討論的熱點話題等;
3.作者長期從事數(shù)據(jù)分析、人工智能、Linux編程等課程的教學(xué)工作。主要研究方向包括大數(shù)據(jù)分析與挖掘、智能駕駛等;
4.三步驟:數(shù)據(jù)準(zhǔn)備、數(shù)據(jù)模型構(gòu)建、數(shù)據(jù)可視化,此過程即可提升學(xué)生的實踐能力,加固學(xué)生對理論知識的深入理解;
5.針對各知識點均設(shè)計了相應(yīng)的Python案例,并給出了實現(xiàn)代碼、效果圖以及相應(yīng)的解釋,以強化讀者對各知識點的理解與掌握。
【吳振宇】
北京航空航天大學(xué)工學(xué)博士,南京郵電大學(xué)物聯(lián)網(wǎng)學(xué)院教師,中國指揮與控制學(xué)會認(rèn)知與行為專業(yè)委員會委員,中國計算機學(xué)會網(wǎng)絡(luò)與數(shù)據(jù)通信專業(yè)委員會委員。具有長達(dá)4年的外商投資企業(yè)軟件開發(fā)經(jīng)驗,長期從事數(shù)據(jù)分析、人工智能、Linux編程等課程的教學(xué)工作。主要研究方向包括大數(shù)據(jù)分析與挖掘、智能駕駛等。
第 1章 Python快速入門 1
1.1 一種簡單的編程語言 2
1.1.1 Python--解釋型編程語言 2
1.1.2 Python應(yīng)用 3
1.2 Python開發(fā)環(huán)境 4
1.2.1 搭建簡單的Python開發(fā)環(huán)境 4
1.2.2 功能強大的集成開發(fā)環(huán)境 6
1.2.3 交互式開發(fā)環(huán)境 6
1.3 Python中簡單的程序結(jié)構(gòu) 8
1.3.1 文件是代碼的基本組成單元 8
1.3.2 模塊化地組織代碼 8
1.3.3 代碼縮進區(qū)分邏輯關(guān)系 10
1.3.4 輸入和輸出提升程序交互性 10
1.3.5 常見的Python解釋器 11
1.4 習(xí)題 12
第 2章 Python數(shù)據(jù)類型 13
2.1 數(shù)據(jù)類型是數(shù)據(jù)表示的基礎(chǔ) 14
2.1.1 Python中一切皆對象 14
2.1.2 數(shù)字類型 14
2.1.3 布爾類型 15
2.1.4 字符串類型 15
2.1.5 自定義數(shù)據(jù)類型 16
2.1.6 變量 17
2.2 語句組成邏輯結(jié)構(gòu) 18
2.2.1 運算符和表達(dá)式 19
2.2.2 語句 20
2.3 控制程序的執(zhí)行 21
2.3.1 順序結(jié)構(gòu) 21
2.3.2 分支結(jié)構(gòu) 21
2.3.3 循環(huán)結(jié)構(gòu) 22
2.4 有效存儲數(shù)據(jù) 24
2.4.1 列表 25
2.4.2 元組 27
2.4.3 字典 28
2.4.4 集合 29
2.4.5 特殊運算符 30
2.5 函數(shù)實現(xiàn)代碼復(fù)用 31
2.5.1 自定義函數(shù) 31
2.5.2 內(nèi)置函數(shù) 32
2.5.3 字符串處理函數(shù) 33
2.5.4 函數(shù)式編程 33
2.6 存儲數(shù)據(jù) 35
2.6.1 文件操作 36
2.6.2 JSON和XML 36
2.7 案例:傳感器數(shù)據(jù)分析 40
2.8 習(xí)題 42
第3章 Python常用模塊 43
3.1 模塊的概念 44
3.2 自定義模塊 46
3.3 正則表達(dá)式模塊 46
3.4 NumPy和SciPy模塊 50
3.4.1 NumPy 51
3.4.2 SciPy 59
3.5 Pandas庫 61
3.6 習(xí)題 71
第4章 Python數(shù)據(jù)獲取 73
4.1 Web的客戶端/服務(wù)器工作模式 74
4.1.1 Web數(shù)據(jù)傳輸協(xié)議 75
4.1.2 Web頁面標(biāo)記語言 78
4.1.3 Web樣式設(shè)計 81
4.2 Python設(shè)計爬蟲軟件 84
4.2.1 頁面請求庫URLLib 84
4.2.2 增強的網(wǎng)絡(luò)請求庫Requests 88
4.2.3 頁面內(nèi)容解析庫BeautifulSoup 91
4.2.4 案例:在互聯(lián)網(wǎng)上獲取電影評論數(shù)據(jù) 95
4.2.5 瀏覽器中模擬點擊的Selenium庫 97
4.3 多線程提升數(shù)據(jù)獲取的效率 103
4.3.1 多線程的使用方法 104
4.3.2 案例:多線程在頁面數(shù)據(jù)獲取中的應(yīng)用 106
4.4 習(xí)題 109
第5章 Python數(shù)據(jù)挖掘基礎(chǔ) 111
5.1 數(shù)據(jù)挖掘的基本概念 112
5.1.1 數(shù)據(jù)挖掘中常用的術(shù)語 112
5.1.2 數(shù)據(jù)挖掘的流程 113
5.2 數(shù)據(jù)集是數(shù)據(jù)挖掘的基礎(chǔ) 115
5.2.1 各領(lǐng)域公開了大量的數(shù)據(jù)集 115
5.2.2 自定義數(shù)據(jù) 119
5.3 Python中常用的 數(shù)據(jù)挖掘庫 120
5.3.1 自然語言處理常用的NLTK庫 120
5.3.2 機器學(xué)習(xí)常用的Sklearn庫 125
5.4 習(xí)題 134
第6章 Python數(shù)據(jù)挖掘算法 135
6.1 數(shù)據(jù)挖掘中的分類 136
6.1.1 分類問題的基本思想 136
6.1.2 常見的分類算法 139
6.1.3 樸素貝葉斯分類算法的原理 145
6.1.4 案例:從頭實現(xiàn)樸素貝葉斯分類算法 146
6.2 數(shù)據(jù)挖掘中的聚類 148
6.2.1 聚類的基本思想 149
6.2.2 常見的聚類算法 152
6.2.3 K-means聚類算法的原理 168
6.2.4 案例:從頭實現(xiàn)K-means聚類算法 169
6.3 習(xí)題 171
第7章 Python大數(shù)據(jù)挖掘 173
7.1 深度學(xué)習(xí)是大數(shù)據(jù)處理的重要手段 174
7.1.1 深度學(xué)習(xí)來源于神經(jīng)網(wǎng)絡(luò) 175
7.1.2 深度學(xué)習(xí)已有大量模型 187
7.1.3 深度學(xué)習(xí)框架提升使用效率 191
7.1.4 卷積神經(jīng)網(wǎng)絡(luò)的工作原理 193
7.1.5 LSTM網(wǎng)絡(luò)的工作原理 196
7.1.6 案例:使用卷積神經(jīng)網(wǎng)絡(luò)實現(xiàn)蔬菜識別系統(tǒng) 200
7.2 習(xí)題 204
第8章 Python數(shù)據(jù)可視化 207
8.1 可視化技術(shù)自然地展現(xiàn)數(shù)據(jù)規(guī)律 208
8.2 最為常用的Matplotlib庫 208
8.2.1 使用Matplotlib庫繪制各種圖形 211
8.2.2 Pandas庫中直接繪圖 216
8.3 Seaborn庫增強繪圖效果 219
8.4 Plotnine庫彌補可視化不足 225
8.5 案例:房價數(shù)據(jù)采集及可視化 228
8.6 習(xí)題 231
參考文獻 232