Python數(shù)據(jù)分析入門(mén)——從數(shù)據(jù)獲取到可視化
定 價(jià):59 元
當(dāng)前圖書(shū)已被 9 所學(xué)校薦購(gòu)過(guò)!
查看明細(xì)
- 作者:沈祥壯
- 出版時(shí)間:2018/3/1
- ISBN:9787121336539
- 出 版 社:電子工業(yè)出版社
- 中圖法分類(lèi):TP311.561
- 頁(yè)碼:
- 紙張:膠版紙
- 版次:1
- 開(kāi)本:16開(kāi)
本書(shū)作為數(shù)據(jù)分析的入門(mén)圖書(shū),以Python語(yǔ)言為基礎(chǔ),介紹了數(shù)據(jù)分析的整個(gè)流程。本書(shū)內(nèi)容涵蓋數(shù)據(jù)的獲。淳W(wǎng)絡(luò)爬蟲(chóng)程序的設(shè)計(jì))、前期數(shù)據(jù)的清洗和處理、運(yùn)用機(jī)器學(xué)習(xí)算法進(jìn)行建模分析,以及使用可視化的方法展示數(shù)據(jù)及結(jié)果。首先,書(shū)中不會(huì)涉及過(guò)于高級(jí)的語(yǔ)法,不過(guò)還是希望讀者有一定的語(yǔ)法基礎(chǔ),這樣可以更好地理解本書(shū)的內(nèi)容。其次,本書(shū)重點(diǎn)在于應(yīng)用Python來(lái)完成一些數(shù)據(jù)分析和數(shù)據(jù)處理的工作,即如何使用Python來(lái)完成工作而非專(zhuān)注于Python語(yǔ)言語(yǔ)法等原理的講解。本書(shū)的目的是讓初學(xué)者不論對(duì)數(shù)據(jù)分析流程本身還是Python語(yǔ)言,都能有一個(gè)十分直觀的感受,為以后的深入學(xué)習(xí)打下基礎(chǔ)。*后,讀者不必須按順序通讀本書(shū),因?yàn)楦鱾(gè)章節(jié)層次比較分明,可以根據(jù)興趣或者需要來(lái)自行安排。例如第5章介紹了一些實(shí)戰(zhàn)的小項(xiàng)目,有趣且難度不大,大家可以在學(xué)習(xí)前面內(nèi)容之余來(lái)閱讀這部分內(nèi)容。
這是一本務(wù)實(shí)之作,充分體現(xiàn)數(shù)據(jù)分析流程的各項(xiàng)環(huán)節(jié),包含數(shù)據(jù)的采集、清洗和探索性分析,并通過(guò)大家耳熟能說(shuō)的Python工具加以實(shí)操。
Python作為一門(mén)優(yōu)秀的編程語(yǔ)言,近年來(lái)受到很多編程愛(ài)好者的青睞。一是因?yàn)镻ython本身具有簡(jiǎn)捷優(yōu)美、易學(xué)易用的特點(diǎn);二是由于互聯(lián)網(wǎng)的飛速發(fā)展,我們正迎來(lái)大數(shù)據(jù)的時(shí)代,而Python無(wú)論是在數(shù)據(jù)的采集與處理方面,還是在數(shù)據(jù)分析與可視化方面都有獨(dú)特的優(yōu)勢(shì)。我們可以利用Python便捷地開(kāi)展與數(shù)據(jù)相關(guān)的項(xiàng)目,以很低的學(xué)習(xí)成本快速完成項(xiàng)目的研究。本書(shū)本著實(shí)用性的目的,著眼于整個(gè)數(shù)據(jù)分析的流程,介紹了從數(shù)據(jù)采集到可視化的大致流程。希望借此為Python初學(xué)者打開(kāi)數(shù)據(jù)分析領(lǐng)域的大門(mén),初窺數(shù)據(jù)分析的奧秘。
本書(shū)的主要內(nèi)容
第1章主要講解了在Ubuntu和Windows系統(tǒng)下,Python集成開(kāi)發(fā)環(huán)境的搭建?紤]到初學(xué)者容易為安裝第三方庫(kù)犯難,又介紹了三種簡(jiǎn)單實(shí)用的方法來(lái)安裝這些常見(jiàn)的庫(kù)。接著對(duì)幾個(gè)后面要用到的高級(jí)語(yǔ)法進(jìn)行了簡(jiǎn)單介紹,為之后的應(yīng)用打下基礎(chǔ)。
第2章集中講解了數(shù)據(jù)采集的流程,即網(wǎng)絡(luò)爬蟲(chóng)程序的設(shè)計(jì)與實(shí)現(xiàn)。首先本章沒(méi)有拘泥于使用Python的內(nèi)置庫(kù)urllib庫(kù)進(jìn)行實(shí)現(xiàn),而是直接介紹了requests和其他更加簡(jiǎn)捷強(qiáng)大的庫(kù)來(lái)完成程序的設(shè)計(jì)。在進(jìn)階內(nèi)容中,對(duì)常見(jiàn)的編碼問(wèn)題、異常處理、代理IP、驗(yàn)證碼、機(jī)器人協(xié)議、模擬登錄,以及多線程等相關(guān)問(wèn)題給出了解決的方案。
第3章講解數(shù)據(jù)的清洗問(wèn)題。在具體講解清洗數(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ù)提供的決策樹(shù)和最鄰近算法來(lái)處理分類(lèi)問(wèn)題,并嘗試根據(jù)算法原理手動(dòng)實(shí)現(xiàn)最鄰近算法。最后介紹如何使用pandas、matplotlib和seaborn這三個(gè)庫(kù)來(lái)實(shí)現(xiàn)數(shù)據(jù)的可視化。
第5章是綜合性學(xué)習(xí)的章節(jié),講解了三個(gè)小項(xiàng)目的完整實(shí)現(xiàn)過(guò)程,旨在通過(guò)操作生活中真正的數(shù)據(jù)來(lái)強(qiáng)化前面基礎(chǔ)內(nèi)容的學(xué)習(xí)。
本書(shū)的讀者對(duì)象
本書(shū)面向想從事數(shù)據(jù)工作的Python初學(xué)者。由于本書(shū)并不對(duì)Python的基礎(chǔ)語(yǔ)法做詳細(xì)的講解,所以希望讀者有一定的語(yǔ)法基礎(chǔ)。
測(cè)試環(huán)境及代碼
我們使用的語(yǔ)法是基于Python 3的,具體是Python 3.6,用到的第三方庫(kù)也已經(jīng)全面支持此版本,所以讀者不必?fù)?dān)心相關(guān)的版本問(wèn)題;測(cè)試環(huán)境為Ubuntu 16.04 LTS 64-Bit。本書(shū)中使用的全部代碼及相關(guān)數(shù)據(jù)已經(jīng)托管至Github, 讀者可以進(jìn)入https://github.com/shenxiangzhuang/PythonDataAnalysis進(jìn)行下載。
聯(lián)系作者
雖然本書(shū)只是入門(mén)級(jí)圖書(shū),但是限于筆者水平有限,難免會(huì)存在一些錯(cuò)誤,有些地方的表述可能也不是那么準(zhǔn)確。非常歡迎讀者指出本書(shū)的不當(dāng)之處或提出建設(shè)性的意見(jiàn)。筆者的電子郵件地址是datahonor@gmail.com。
致謝
在本書(shū)的撰寫(xiě)過(guò)程中受到過(guò)很多人的幫助,這里特別感謝劉松學(xué)長(zhǎng),感謝學(xué)長(zhǎng)對(duì)筆者本人長(zhǎng)久以來(lái)的幫助,從他那里我學(xué)到了很多關(guān)于Python語(yǔ)言、機(jī)器學(xué)習(xí)以及計(jì)算機(jī)視覺(jué)等相關(guān)知識(shí)。另外,特別感謝IT工作者謝滿銳先生對(duì)本書(shū)的細(xì)心審校,也感謝他為本書(shū)的進(jìn)一步修改提出建設(shè)性意見(jiàn)。同時(shí),感謝電子工業(yè)出版社石倩、楊嘉媛編輯的幫助。最后,本書(shū)參閱了大量的國(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語(yǔ)言實(shí)現(xiàn)了部分統(tǒng)計(jì)學(xué)習(xí)算法。研究方向包括數(shù)據(jù)采集,數(shù)據(jù)挖掘,統(tǒng)計(jì)機(jī)器學(xué)習(xí)及圖像處理。
1 準(zhǔn)備1
1.1 開(kāi)發(fā)環(huán)境搭建2
1.1.1 在Ubuntu系統(tǒng)下搭建Python集成開(kāi)發(fā)環(huán)境2
1.1.2 在Windows系統(tǒng)下搭建Python集成開(kāi)發(fā)環(huán)境13
1.1.3 三種安裝第三方庫(kù)的方法16
1.2 Python基礎(chǔ)語(yǔ)法介紹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 爬蟲(chóng)簡(jiǎn)介31
2.2 數(shù)據(jù)抓取實(shí)踐33
2.2.1 請(qǐng)求網(wǎng)頁(yè)數(shù)據(jù)33
2.2.2 網(wǎng)頁(yè)解析38
2.2.3 數(shù)據(jù)的存儲(chǔ)46
2.3 爬蟲(chóng)進(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á)式入門(mén)63
2.3.7 模擬登錄69
2.3.8 驗(yàn)證碼問(wèn)題74
2.3.9 動(dòng)態(tài)加載內(nèi)容的獲取84
2.3.10 多線程與多進(jìn)程93
2.4 爬蟲(chóng)總結(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 編碼問(wèn)題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í)入門(mén)199
4.2.1 機(jī)器學(xué)習(xí)簡(jiǎn)介200
4.2.2 決策樹(shù)機(jī)器學(xué)習(xí)算法的應(yīng)用202
4.3 手動(dòng)實(shí)現(xiàn)KNN算法205
4.3.1 特例最鄰近分類(lèi)器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 三門(mén)問(wèn)題245
5.2.3 解決LP與QP問(wèn)題(選讀)247
5.3 QQ群聊天記錄數(shù)據(jù)分析251
參考文獻(xiàn)256