Python數(shù)據(jù)分析入門——從數(shù)據(jù)獲取到可視化
定 價:59 元
- 作者:沈祥壯
- 出版時間:2018/3/1
- ISBN:9787121336539
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP311.561
- 頁碼:
- 紙張:膠版紙
- 版次:1
- 開本:16開
本書作為數(shù)據(jù)分析的入門圖書,以Python語言為基礎(chǔ),介紹了數(shù)據(jù)分析的整個流程。本書內(nèi)容涵蓋數(shù)據(jù)的獲。淳W(wǎng)絡(luò)爬蟲程序的設(shè)計)、前期數(shù)據(jù)的清洗和處理、運(yùn)用機(jī)器學(xué)習(xí)算法進(jìn)行建模分析,以及使用可視化的方法展示數(shù)據(jù)及結(jié)果。首先,書中不會涉及過于高級的語法,不過還是希望讀者有一定的語法基礎(chǔ),這樣可以更好地理解本書的內(nèi)容。其次,本書重點在于應(yīng)用Python來完成一些數(shù)據(jù)分析和數(shù)據(jù)處理的工作,即如何使用Python來完成工作而非專注于Python語言語法等原理的講解。本書的目的是讓初學(xué)者不論對數(shù)據(jù)分析流程本身還是Python語言,都能有一個十分直觀的感受,為以后的深入學(xué)習(xí)打下基礎(chǔ)。*后,讀者不必須按順序通讀本書,因為各個章節(jié)層次比較分明,可以根據(jù)興趣或者需要來自行安排。例如第5章介紹了一些實戰(zhàn)的小項目,有趣且難度不大,大家可以在學(xué)習(xí)前面內(nèi)容之余來閱讀這部分內(nèi)容。
這是一本務(wù)實之作,充分體現(xiàn)數(shù)據(jù)分析流程的各項環(huán)節(jié),包含數(shù)據(jù)的采集、清洗和探索性分析,并通過大家耳熟能說的Python工具加以實操。
Python作為一門優(yōu)秀的編程語言,近年來受到很多編程愛好者的青睞。一是因為Python本身具有簡捷優(yōu)美、易學(xué)易用的特點;二是由于互聯(lián)網(wǎng)的飛速發(fā)展,我們正迎來大數(shù)據(jù)的時代,而Python無論是在數(shù)據(jù)的采集與處理方面,還是在數(shù)據(jù)分析與可視化方面都有獨特的優(yōu)勢。我們可以利用Python便捷地開展與數(shù)據(jù)相關(guān)的項目,以很低的學(xué)習(xí)成本快速完成項目的研究。本書本著實用性的目的,著眼于整個數(shù)據(jù)分析的流程,介紹了從數(shù)據(jù)采集到可視化的大致流程。希望借此為Python初學(xué)者打開數(shù)據(jù)分析領(lǐng)域的大門,初窺數(shù)據(jù)分析的奧秘。
本書的主要內(nèi)容
第1章主要講解了在Ubuntu和Windows系統(tǒng)下,Python集成開發(fā)環(huán)境的搭建?紤]到初學(xué)者容易為安裝第三方庫犯難,又介紹了三種簡單實用的方法來安裝這些常見的庫。接著對幾個后面要用到的高級語法進(jìn)行了簡單介紹,為之后的應(yīng)用打下基礎(chǔ)。
第2章集中講解了數(shù)據(jù)采集的流程,即網(wǎng)絡(luò)爬蟲程序的設(shè)計與實現(xiàn)。首先本章沒有拘泥于使用Python的內(nèi)置庫urllib庫進(jìn)行實現(xiàn),而是直接介紹了requests和其他更加簡捷強(qiáng)大的庫來完成程序的設(shè)計。在進(jìn)階內(nèi)容中,對常見的編碼問題、異常處理、代理IP、驗證碼、機(jī)器人協(xié)議、模擬登錄,以及多線程等相關(guān)問題給出了解決的方案。
第3章講解數(shù)據(jù)的清洗問題。在具體講解清洗數(shù)據(jù)之前,先介紹了TXT、XLSX、JSON、CSV等各種文件的導(dǎo)入和導(dǎo)出的方法,并介紹了Python與MySQL數(shù)據(jù)庫交互的方式。接著介紹了NumPy和pandas庫的基本使用方法,這是我們用于數(shù)據(jù)處理和科學(xué)計算的兩個強(qiáng)大的工具。最后綜合以上的學(xué)習(xí)介紹了數(shù)據(jù)的去重、缺失值的填補(bǔ)等經(jīng)典的數(shù)據(jù)清洗方法。
第4章首先講解探索性數(shù)據(jù)分析的應(yīng)用,并且簡單介紹了機(jī)器學(xué)習(xí)基本知識。然后演示如何應(yīng)用sklearn庫提供的決策樹和最鄰近算法來處理分類問題,并嘗試根據(jù)算法原理手動實現(xiàn)最鄰近算法。最后介紹如何使用pandas、matplotlib和seaborn這三個庫來實現(xiàn)數(shù)據(jù)的可視化。
第5章是綜合性學(xué)習(xí)的章節(jié),講解了三個小項目的完整實現(xiàn)過程,旨在通過操作生活中真正的數(shù)據(jù)來強(qiáng)化前面基礎(chǔ)內(nèi)容的學(xué)習(xí)。
本書的讀者對象
本書面向想從事數(shù)據(jù)工作的Python初學(xué)者。由于本書并不對Python的基礎(chǔ)語法做詳細(xì)的講解,所以希望讀者有一定的語法基礎(chǔ)。
測試環(huán)境及代碼
我們使用的語法是基于Python 3的,具體是Python 3.6,用到的第三方庫也已經(jīng)全面支持此版本,所以讀者不必?fù)?dān)心相關(guān)的版本問題;測試環(huán)境為Ubuntu 16.04 LTS 64-Bit。本書中使用的全部代碼及相關(guān)數(shù)據(jù)已經(jīng)托管至Github, 讀者可以進(jìn)入https://github.com/shenxiangzhuang/PythonDataAnalysis進(jìn)行下載。
聯(lián)系作者
雖然本書只是入門級圖書,但是限于筆者水平有限,難免會存在一些錯誤,有些地方的表述可能也不是那么準(zhǔn)確。非常歡迎讀者指出本書的不當(dāng)之處或提出建設(shè)性的意見。筆者的電子郵件地址是datahonor@gmail.com。
致謝
在本書的撰寫過程中受到過很多人的幫助,這里特別感謝劉松學(xué)長,感謝學(xué)長對筆者本人長久以來的幫助,從他那里我學(xué)到了很多關(guān)于Python語言、機(jī)器學(xué)習(xí)以及計算機(jī)視覺等相關(guān)知識。另外,特別感謝IT工作者謝滿銳先生對本書的細(xì)心審校,也感謝他為本書的進(jìn)一步修改提出建設(shè)性意見。同時,感謝電子工業(yè)出版社石倩、楊嘉媛編輯的幫助。最后,本書參閱了大量的國內(nèi)外的文獻(xiàn),這里對有關(guān)作者表示衷心的感謝。
沈祥壯 自學(xué)Python兩年,以數(shù)據(jù)分析為主線,系統(tǒng)學(xué)習(xí)了數(shù)據(jù)的采集,處理、分析和可視化。在研究統(tǒng)計機(jī)器學(xué)習(xí)理論的同時,使用Python語言實現(xiàn)了部分統(tǒng)計學(xué)習(xí)算法。研究方向包括數(shù)據(jù)采集,數(shù)據(jù)挖掘,統(tǒng)計機(jī)器學(xué)習(xí)及圖像處理。
1 準(zhǔn)備1
1.1 開發(fā)環(huán)境搭建2
1.1.1 在Ubuntu系統(tǒng)下搭建Python集成開發(fā)環(huán)境2
1.1.2 在Windows系統(tǒng)下搭建Python集成開發(fā)環(huán)境13
1.1.3 三種安裝第三方庫的方法16
1.2 Python基礎(chǔ)語法介紹19
1.2.1 if__name__=='__main__'20
1.2.2 列表解析式22
1.2.3 裝飾器23
1.2.4 遞歸函數(shù)26
1.2.5 面向?qū)ο?7
1.3 The Zen of Python28
參考文獻(xiàn)30
2 數(shù)據(jù)的獲取31
2.1 爬蟲簡介31
2.2 數(shù)據(jù)抓取實踐33
2.2.1 請求網(wǎng)頁數(shù)據(jù)33
2.2.2 網(wǎng)頁解析38
2.2.3 數(shù)據(jù)的存儲46
2.3 爬蟲進(jìn)階50
2.3.1 異常處理50
2.3.2 robots.txt58
2.3.3 動態(tài)UA60
2.3.4 代理IP61
2.3.5 編碼檢測61
2.3.6 正則表達(dá)式入門63
2.3.7 模擬登錄69
2.3.8 驗證碼問題74
2.3.9 動態(tài)加載內(nèi)容的獲取84
2.3.10 多線程與多進(jìn)程93
2.4 爬蟲總結(jié)101
參考文獻(xiàn)102
3 數(shù)據(jù)的存取與清洗103
3.1 數(shù)據(jù)存取103
3.1.1 基本文件操作103
3.1.2 CSV文件的存取111
3.1.3 JSON文件的存取116
3.1.4 XLSX文件的存取121
3.1.5 MySQL數(shù)據(jù)庫文件的存取137
3.2 NumPy145
3.2.1 NumPy簡介145
3.2.2 NumPy基本操作146
3.3 pandas158
3.3.1 pandas簡介158
3.3.2 Series與DataFrame的使用159
3.3.3 布爾值數(shù)組與函數(shù)應(yīng)用169
3.4 數(shù)據(jù)的清洗174
3.4.1 編碼問題174
3.4.2 缺失值的檢測與處理175
3.4.3 去除異常值181
3.4.4 去除重復(fù)值與冗余信息183
3.4.5 注意事項185
參考文獻(xiàn)187
4 數(shù)據(jù)的分析及可視化188
4.1 探索性數(shù)據(jù)分析189
4.1.1 基本流程189
4.1.2 數(shù)據(jù)降維197
4.2 機(jī)器學(xué)習(xí)入門199
4.2.1 機(jī)器學(xué)習(xí)簡介200
4.2.2 決策樹機(jī)器學(xué)習(xí)算法的應(yīng)用202
4.3 手動實現(xiàn)KNN算法205
4.3.1 特例最鄰近分類器205
4.3.2 KNN算法的完整實現(xiàn)213
4.4 數(shù)據(jù)可視化215
4.4.1 高質(zhì)量作圖工具matplotlib215
4.4.2 快速作圖工具pandas與matplotlib223
4.4.3 簡捷作圖工具seaborn與matplotlib226
4.4.4 詞云圖230
參考文獻(xiàn)232
5 Python與生活234
5.1 定制一個新聞提醒服務(wù)234
5.1.1 新聞數(shù)據(jù)的抓取235
5.1.2 實現(xiàn)郵件發(fā)送功能237
5.1.3 定時執(zhí)行及本地日志記錄239
5.2 Python與數(shù)學(xué)241
5.2.1 估計值242
5.2.2 三門問題245
5.2.3 解決LP與QP問題(選讀)247
5.3 QQ群聊天記錄數(shù)據(jù)分析251
參考文獻(xiàn)256