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