Python數(shù)據(jù)分析-鐵道出版社_第1頁
Python數(shù)據(jù)分析-鐵道出版社_第2頁
Python數(shù)據(jù)分析-鐵道出版社_第3頁
Python數(shù)據(jù)分析-鐵道出版社_第4頁
Python數(shù)據(jù)分析-鐵道出版社_第5頁
已閱讀5頁,還剩206頁未讀, 繼續(xù)免費閱讀

付費閱讀全文

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

普通高等院校應用型人才培養(yǎng)“十三五”規(guī)劃教材

Python數(shù)據(jù)分析

吳道君朱家榮◎主編

毛鳳翔郭洪濤宋毅孫海龍◎副主編

王慶喜◎主審

內(nèi)容簡介

本書全面講解Python數(shù)據(jù)分析的相關知識和技術,內(nèi)容包括Python數(shù)據(jù)分析概述、

NumPy數(shù)值計算、Matplotlib數(shù)據(jù)可視化、Pandas數(shù)據(jù)分析、數(shù)據(jù)預處理、Sklearn機器學習。

本書以培養(yǎng)學生編程能力和數(shù)據(jù)分析能力為目標,注重技術應用能力的培養(yǎng)。

本書內(nèi)容充實、結構合理、實用性強,具有明確的應用能力培養(yǎng)目標,易于接受和理解,

學完本書后,可以具備數(shù)據(jù)分析的基本能力。

本書適合作為普通高等院校人工智能、數(shù)據(jù)科學與大數(shù)據(jù)以及計算機相關專業(yè)課程的教

材,也可以作為相關從業(yè)人員的技術參考用書。

圖書在版編目(CIP)數(shù)據(jù)

Python數(shù)據(jù)分析/吳道君,朱家榮主編.—北京:中國鐵道

出版社有限公司,2019.9

普通高等院校應用型人才培養(yǎng)“十三五”規(guī)劃教材

ISBN978-7-113-25871-9

Ⅰ.①P…Ⅱ.①吳…②朱…Ⅲ.①軟件工具-程序設計-

高等學校-教材Ⅳ.①TP311.561

中國版本圖書館CIP數(shù)據(jù)核字(2019)第149952號

書名:Python數(shù)據(jù)分析

作者:吳道君朱家榮

策劃:韓從付周海燕編輯部電話2019

責任編輯:周海燕彭立輝

封面設計:穆麗

責任校對:張玉華

責任印制:郭向偉

出版發(fā)行:中國鐵道出版社有限公司(100054,北京市西城區(qū)右安門西街8號)

網(wǎng)址:/51eds/

印刷:三河市宏盛印務有限公司

版次:2019年9月第1版2019年9月第1次印刷

開本:787mm×1092mm1/16印張:13字數(shù):322千

書號:ISBN978-7-113-25871-9

定價:45.00元

版權所有侵權必究

凡購買鐵道版圖書,如有印制質(zhì)量問題,請與本社教材圖書營銷部聯(lián)系調(diào)換。電話:(010)63550836

打擊盜版舉報電話:(010)51873659

前言

數(shù)據(jù)的價值越來越被公眾認可和推崇,而數(shù)據(jù)分析的作用就是通過一定的方法找出數(shù)據(jù)

的價值。

近年來,隨著大數(shù)據(jù)技術和人工智能技術的發(fā)展,Python已經(jīng)成為數(shù)據(jù)科學領域最為重

要的語言和工具。Python是一種面向對象、解釋型的計算機程序設計語言,其語法簡潔清晰、

成熟穩(wěn)定。

Python最為重要的是具有豐富和強大的庫,例如在數(shù)據(jù)分析領域的NumPy、Matplotlib、

Pandas和Sklean等,這些庫基本上包含了數(shù)據(jù)分析的所有方面,為數(shù)據(jù)分析提供了強大的功

能支持。有了這些數(shù)據(jù)分析庫,就可以非常容易地對數(shù)據(jù)進行分析,不再需要從基礎做起,

大大降低了數(shù)據(jù)分析的難度和復雜度。

本書主要講解使用Python以及Python的庫進行數(shù)據(jù)分析的技術,全書共分為6章,主要

內(nèi)容如下:

第1章Python數(shù)據(jù)分析概述,主要講解數(shù)據(jù)分析的相關概念及其應用、Python在數(shù)據(jù)分

析領域的優(yōu)勢、Python數(shù)據(jù)分析的第三方類庫、Python數(shù)據(jù)分析環(huán)境庫的安裝、Jupyter

Notebook工具的基本使用。

第2章NumPy數(shù)值計算,主要講解NumPy數(shù)組的概念,NumPy數(shù)組的創(chuàng)建方法、屬性

和數(shù)據(jù)類型,常用數(shù)組操作方法的使用,數(shù)組的切片和索引方法,數(shù)組的各類運算方法和使

用,NumPy的線性代數(shù)運算函數(shù),數(shù)組的存取操作方法。

第3章Matplotlib數(shù)據(jù)可視化,主要講解線形圖的繪制,線形圖的線的顏色、線型、坐

標點、線寬設置;散點圖、柱狀圖、條形圖、餅圖、直方圖、箱線圖的繪制;圖例、坐標網(wǎng)

格、坐標系、樣式的設置,樣式、RC設置和文本注解;子圖的繪制、子圖坐標系的設置、

圖形嵌套;三維圖形的繪制。

第4章Pandas數(shù)據(jù)分析,主要講解Pandas的數(shù)據(jù)結構,常用的DataFrame數(shù)據(jù)結構;

DataFrame的基本功能,DataFrame的行操作與列操作;Pandas操作外部數(shù)據(jù)的方法,讀取

CVS、數(shù)據(jù)庫數(shù)據(jù)的方法;DataFrame的重建索引、更換索引和層次化索引的使用;Series、

DataFrame的數(shù)據(jù)運算,函數(shù)應用與映射、排序、迭代方法;描述性統(tǒng)計函數(shù),協(xié)方差、相

關性等的計算方法;分組與聚合的概念、分組聚合的方法使用;透視表、交叉表的方法。

第5章數(shù)據(jù)預處理,主要講解數(shù)據(jù)清洗的概念和方法,重復值、缺失值和異常值的檢測

II

與處理;DataFrame對象的合并連接與重塑方法;數(shù)據(jù)變換的種類、常用的數(shù)據(jù)變換方法。

P

y第6章Sklearn機器學習,主要講解機器學習的有關概念,Sklearn數(shù)據(jù)集,Sklearn數(shù)據(jù)

t

h

o

n預處理,降維、回歸、聚類和分類算法,模型的選擇、訓練、預測和評估等。

數(shù)據(jù)分析

本書配有完善的教學資源,包括教學課件、電子教案、教學大綱、教學計劃、實驗參考、

習題答案等,可以在/51eds中下載。在教學過程中如果遇到任何問題,

可以通過電子郵箱qingxiwang1111@163.com與作者進行交流。

本書由廣東嶺南職業(yè)技術學院吳道君、廣西民族師范學院朱家榮任主編,信陽學院毛鳳翔、

洛陽師范學院郭洪濤、哈爾濱華德學院宋毅和孫海龍任副主編,其中宋毅編寫了第1章,

吳道君編寫了第2章,朱家榮編寫了第3章,毛鳳翔編寫了第4章,孫海龍編寫了第5章,

郭洪濤編寫了第6章。全書由王慶喜主審。

本書得到相關領導、同事和有關學生的熱情幫助和支持,在此向他們表示衷心的感謝。

由于時間倉促,編者水平有限,書中難免存在疏漏和不足之處,敬請讀者批評指正。

編者

2019年5月

目錄

第1章Python數(shù)據(jù)分析概述...............12.4.4集合運算................................40

2.4.5統(tǒng)計運算................................41

1.1數(shù)據(jù)分析的概念、流程和應用.....1

2.4.6排序.......................................43

1.1.1數(shù)據(jù)分析的概念......................1

2.4.7搜索.......................................44

1.1.2數(shù)據(jù)分析的流程......................2

2.5線性代數(shù)......................................45

1.1.3數(shù)據(jù)分析的應用......................2

2.5.1數(shù)組相乘................................46

1.2數(shù)據(jù)分析工具................................3

2.5.2矩陣行列式............................46

1.2.1常用工具.................................4

2.5.3逆矩陣...................................46

1.2.2Python數(shù)據(jù)分析......................4

2.5.4線性方程組............................47

1.3Python數(shù)據(jù)分析環(huán)境....................5

2.5.5特征值和特征向量.................47

小結....................................................9

2.6數(shù)組的存取..................................48

習題....................................................9

小結...................................................48

實驗..................................................10

習題...................................................48

第2章NumPy數(shù)值計算...................15實驗...................................................51

2.1NumPy多維數(shù)組.........................15第3章Matplotlib數(shù)據(jù)可視化.............54

2.1.1數(shù)組創(chuàng)建...............................15

3.1線形圖..........................................54

2.1.2數(shù)組對象屬性........................22

3.1.1繪制線形圖............................54

2.1.3數(shù)組數(shù)據(jù)類型........................23

3.1.2顏色設置................................55

2.2數(shù)組操作......................................24

3.1.3線型設置................................56

2.2.1修改數(shù)組形狀........................24

3.1.4坐標點設置............................57

2.2.2翻轉數(shù)組...............................26

3.1.5線寬設置................................59

2.2.3連接數(shù)組...............................27

3.2其他圖形......................................59

2.2.4分割數(shù)組...............................28

3.2.1散點圖...................................59

2.2.5數(shù)組元素添加與刪除.............30

3.2.2柱形圖...................................61

2.3數(shù)組索引與切片..........................32

3.2.3條形圖...................................63

2.3.1數(shù)組索引...............................32

3.2.4餅圖.......................................64

2.3.2數(shù)組切片...............................33

3.2.5直方圖...................................65

2.3.3布爾型索引............................34

3.2.6箱線圖...................................67

2.3.4花式索引...............................35

3.3自定義設置..................................69

2.4數(shù)組的運算..................................35

3.3.1圖例設置................................69

2.4.1數(shù)組和標量間的運算.............35

3.3.2坐標網(wǎng)格設置........................70

2.4.2廣播.......................................36

3.3.3坐標系設置............................71

2.4.3算術函數(shù)...............................37

II3.3.4樣式設置與注解....................724.9.1透視表.................................127

3.3.5RC設置.................................734.9.2交叉表.................................128

P

y

t

h3.4子圖..............................................74小結.................................................129

o

數(shù)據(jù)分析n3.4.1創(chuàng)建子圖...............................74習題.................................................129

3.4.2子圖坐標系設置....................76實驗.................................................129

3.4.3圖形嵌套...............................77

第5章數(shù)據(jù)預處理..........................134

3.5繪制三維圖形..............................78

小結...................................................815.1數(shù)據(jù)清洗....................................134

習題...................................................825.1.1重復值.................................134

實驗...................................................825.1.2缺失值.................................135

5.1.3異常值.................................140

第4章Pandas數(shù)據(jù)分析....................89

5.2合并連接與重塑.........................142

4.1Pandas數(shù)據(jù)結構..........................895.2.1merge合并...........................142

4.2DataFrame基本功能....................945.2.2concat合并..........................144

4.3讀取外部數(shù)據(jù)..............................955.2.3combine_first合并...............146

4.3.1CSV文件..............................965.2.4數(shù)據(jù)重塑.................................147

4.3.2Sqlite數(shù)據(jù)庫.........................985.3數(shù)據(jù)變換....................................149

4.4數(shù)據(jù)幀的列操作和行操作...........995.3.1虛擬變量.............................149

4.4.1列操作...................................995.3.2函數(shù)變換.............................150

4.4.2行操作.................................1015.3.3連續(xù)屬性離散化..................151

4.5高級索引....................................1035.3.4規(guī)范化.................................152

4.5.1重建索引.............................1035.3.5隨機采樣.............................154

4.5.2更換索引.............................106小結.................................................156

4.5.3層次化索引.........................107習題.................................................156

4.6Pandas數(shù)據(jù)運算........................108實驗.................................................156

4.6.1算術運算.............................108

第6章Sklearn機器學習.................162

4.6.2函數(shù)應用與映射運算..........109

4.6.3排序.....................................1116.1術語............................................162

4.6.4迭代....................................1136.2Sklearn........................................164

4.6.5唯一值與值計數(shù)..................1156.2.1Sklearn數(shù)據(jù)集.....................165

4.7統(tǒng)計函數(shù)....................................1166.2.2Sklearn常用算法.................171

4.7.1描述性統(tǒng)計.........................1166.2.3數(shù)據(jù)預處理..........................175

4.7.2變化率.................................1196.2.4數(shù)據(jù)集拆分..........................177

4.7.3協(xié)方差.................................1206.2.5模型評估.............................177

4.7.4相關性.................................1206.2.6Sklearn常用方法.................178

4.7.5數(shù)據(jù)排名.............................1216.2.7模型的保存和載入..............179

4.8分組與聚合................................1226.3降維............................................179

4.8.1分組....................................1226.3.1PCA(主成分分析)...........179

4.8.2聚合....................................1246.3.2LDA(線性評價分析).......181

4.9透視表與交叉表........................1276.4回歸............................................182

6.4.1線性回歸.............................1836.5.5K?近鄰算法.........................191III

6.4.2邏輯回歸.............................1846.6聚類...........................................192目

6.4.3回歸決策樹..........................1856.6.1K?means算法......................193錄

6.5............................................1866.2.2DBSCAN..............................194

分類

6.5.1樸素貝葉斯..........................187小結.................................................195

6.5.2分類決策樹..........................188習題.................................................195

6.5.3SVM(支持向量機)..........189實驗.................................................196

6.5.4神經(jīng)網(wǎng)絡.............................190

參考文獻............................................200

第1章

Python數(shù)據(jù)分析概述

學習目標

z熟悉數(shù)據(jù)分析的相關概念。

z了解數(shù)據(jù)分析的應用。

z了解Python在數(shù)據(jù)分析領域的優(yōu)勢。

z熟悉Python數(shù)據(jù)分析第三方的類庫。

z掌握Python數(shù)據(jù)分析的類庫安裝。

z掌握JupyterNotebook的基本使用。

引言

隨著科技的發(fā)展,各行各業(yè)產(chǎn)生的數(shù)據(jù)量呈現(xiàn)指數(shù)級增長,如何管理和使用這些數(shù)據(jù),

逐漸成為數(shù)據(jù)科學領域中的一個重要課題。近年來,Python語言發(fā)展迅猛,為數(shù)據(jù)分析提供

了極其優(yōu)秀的工具,并快速成為數(shù)據(jù)科學領域的主要語言之一,越來越多的數(shù)據(jù)分析師在工

作中采用Python技術。

1.1數(shù)據(jù)分析的概念、流程和應用

數(shù)據(jù)分析作為數(shù)據(jù)科學與大數(shù)據(jù)技術的重要組成部分,近年來成為了數(shù)據(jù)科學領域中數(shù)

據(jù)從業(yè)人員必須具備的技能,越來越被重視。

1.1.1數(shù)據(jù)分析的概念

數(shù)據(jù)分析是指選用適當?shù)姆治龇椒▽κ占瘉淼拇罅繑?shù)據(jù)進行分析、提取有用信息和形成

結論,對數(shù)據(jù)加以詳細研究和概括總結的過程。

廣義的數(shù)據(jù)分析包括狹義數(shù)據(jù)分析和數(shù)據(jù)挖掘兩部分。狹義數(shù)據(jù)分析是指根據(jù)分析目的,

采用對比分析、分組分析、交叉分析和回歸分析等分析方法,對收集的數(shù)據(jù)進行處理與分析,

提取有價值的信息,發(fā)揮數(shù)據(jù)的作用,得到一個特征統(tǒng)計量結果的過程。數(shù)據(jù)挖掘則是從大

量的、不完全的、有噪聲的、模糊的、隨機的實際應用數(shù)據(jù)中,通過應用聚類模型、分類模

型、回歸和關聯(lián)規(guī)則等技術,挖掘潛在價值的過程。

數(shù)據(jù)分析的目的是把隱藏在一大批看起來雜亂無章的數(shù)據(jù)中的信息集中、萃取和提煉出

來,以找出所研究對象的內(nèi)在規(guī)律,并加以利用,從而創(chuàng)建經(jīng)濟和社會價值。

2

1.1.2數(shù)據(jù)分析的流程

P

y

t

h數(shù)據(jù)分析已經(jīng)逐漸演化為一種解決問題的過程,典型的數(shù)據(jù)分析流程如下:

o

數(shù)據(jù)分析n1.需求分析

需求分析的主要內(nèi)容是根據(jù)數(shù)據(jù)分析需求方的要求和實際情況,結合現(xiàn)有的數(shù)據(jù)情況,

提出數(shù)據(jù)分析需求的整體分析方向、分析內(nèi)容,最終和需求方達成一致意見。

2.數(shù)據(jù)獲取

數(shù)據(jù)獲取是根據(jù)需求分析的結果提取、收集數(shù)據(jù)。數(shù)據(jù)獲取主要有兩種方式:網(wǎng)絡數(shù)據(jù)

與本地數(shù)據(jù)。網(wǎng)絡數(shù)據(jù)是指存儲在互聯(lián)網(wǎng)中的各類視頻、圖片、語言和文字等信息;本地數(shù)

據(jù)則是指存儲在本地數(shù)據(jù)庫中的數(shù)據(jù)。本地數(shù)據(jù)按照數(shù)據(jù)時間又可以劃分為兩部分:歷史數(shù)

據(jù)和實時數(shù)據(jù)。歷史數(shù)據(jù)是指系統(tǒng)在運行過程中遺存下來的數(shù)據(jù),其數(shù)據(jù)隨系統(tǒng)運行時間的

增加而增長;實時數(shù)據(jù)是指最近一個單位周期內(nèi)產(chǎn)生的數(shù)據(jù)。

3.數(shù)據(jù)預處理

數(shù)據(jù)預處理是指對數(shù)據(jù)進行數(shù)據(jù)合并、數(shù)據(jù)清洗和數(shù)據(jù)變換,并直接用于分析建模的這

一過程的總稱。其中,數(shù)據(jù)合并可以將多張相互關聯(lián)的表格合并成為一張;數(shù)據(jù)清洗可以處

理重復值、缺失值和異常值;數(shù)據(jù)變換可以通過一定規(guī)則把原始數(shù)據(jù)轉換為適合分析的形式,

滿足后期分析與建模的數(shù)據(jù)要求。

4.分析與建模

分析與建模是指通過對比分析、分組分析、交叉分析、回歸分析等分析方法,以及聚類

模型、分類模型、關聯(lián)模型等模型與算法,發(fā)現(xiàn)數(shù)據(jù)中有價值信息,并得出結論的過程。

分析與建模的方法按照目標不同可以劃分幾大類。如果分析目標是描述行為模式的,可

采用描述性數(shù)據(jù)分析方法,同時還可以考慮關聯(lián)規(guī)則、序列規(guī)則和聚類模型等。如果分析目

標是量化未來一段時間內(nèi)某個時間發(fā)生概率的,則可以使用分類預測模型和回歸預測模型。

5.模型評價與優(yōu)化

模型評價是指對于已經(jīng)建立的模型,根據(jù)其模型的類別,使用不同指標評價其性能優(yōu)劣

的過程。常用的聚類模型評價方法有ARI評價法(蘭特系數(shù))、AMI評價(互信息)、V-measure

評分等。常用的分類模型評價方法有準確率(Accuracy)、精確率(Precision)、召回率(Recall)

等。常用的回歸模型評價指標有平均絕對誤差、均方誤差、中值絕對誤差等。

模型優(yōu)化則是指模型在經(jīng)過模型評價后已經(jīng)達到了要求,但在實際生產(chǎn)環(huán)境應用中,發(fā)

現(xiàn)模型并不理想,繼而對模型進行重構與優(yōu)化的過程。

6.部署

部署是指將數(shù)據(jù)分析結果與結論應用至實際生產(chǎn)系統(tǒng)的過程。

1.1.3數(shù)據(jù)分析的應用

數(shù)據(jù)分析可以解決大量的實際問題,已經(jīng)應用于各行各業(yè),并取得了很好的效果。

1.客戶與營銷分析

客戶分析是根據(jù)客戶的基本數(shù)據(jù)進行的商業(yè)行為分析,例如,根據(jù)客戶的需求、所處行

業(yè)的特征以及客戶的經(jīng)濟情況等,使用統(tǒng)計分析方法和預測驗證法分析目標客戶,提高銷售

效率;根據(jù)已有的客戶特征進行客戶特征分析、忠誠度分析和客戶收益分析等。3

營銷分析囊括了產(chǎn)品分析、價格分析、渠道分析、廣告與促銷分析。產(chǎn)品分析主要是競第

爭產(chǎn)品分析,通過對競爭產(chǎn)品分析制定自身產(chǎn)品策略。價格分析又可以分為成本分析和售價

1

分析。成本分析的目的是降低不必要的成本;售價分析的目的是制定符合市場的價格。渠道

分析是指對產(chǎn)品的銷售渠道進行分析,確定最優(yōu)的渠道配比。廣告與促銷分析則能夠結合客

P

y

戶分析,實現(xiàn)銷量的提升、利潤的增加。t

h

o

.業(yè)務流程優(yōu)化n

2數(shù)據(jù)分析概述

數(shù)據(jù)分析可以幫助企業(yè)優(yōu)化業(yè)務流程,例如,可以通過業(yè)務系統(tǒng)和GPS定位系統(tǒng)獲得數(shù)據(jù),

使用數(shù)據(jù)構建交通狀況預測分析模型,有效預測實時路況、物流狀況、車流量、客流量和貨物吞吐

量,進而提前補貨,制定庫存管理策略和路線優(yōu)化;人力資源業(yè)務可以通過數(shù)據(jù)分析來優(yōu)化人才招

聘;交通部門可以在數(shù)據(jù)分析的基礎上建立智能化交管方案降低高峰時段的路線擁堵情況。

3.完善執(zhí)法

利用傳感器、閉路電視安裝并接入中央云數(shù)據(jù)庫、車牌識別、語音識別、犯罪嫌疑人及

罪犯GPS追蹤等數(shù)據(jù)分析,實現(xiàn)智能警務;監(jiān)控并識別異?;顒?、行為或事故,加快決策制

定速度并防止及減少犯罪事件;通過分類模型分析方法對非法集資和洗錢的邏輯路徑進行分

析,找到其行為特征;通過聚類模型分析方法可以分析相似價格的運動模式,可能發(fā)現(xiàn)關聯(lián)

交易及內(nèi)幕交易的可疑信息;通過關聯(lián)規(guī)則分析方法可以監(jiān)控多個用戶的關聯(lián)交易行為,為

發(fā)現(xiàn)跨賬號協(xié)同的金融欺騙行為提供依據(jù)。

4.網(wǎng)絡安全

新型的病毒防御系統(tǒng)可使用數(shù)據(jù)分析技術,建立潛在攻擊識別分析模型,檢測大量網(wǎng)絡

活動數(shù)據(jù)和相應的訪問行為,識別可能進行入侵的可疑模式,做到未雨綢繆。

5.優(yōu)化機器和設備性能

通過物聯(lián)網(wǎng)技術收集和分析設備上的數(shù)據(jù)流,包括連續(xù)用電、零部件溫度、環(huán)境濕度和

污染物顆粒等多種潛在特征,建立設備管理模型,從而預測設備故障,合理安排預防性的維

護,以確保設備正常作業(yè),降低因設備故障帶來的安全風險。

6.改善日常生活

利用穿戴的裝備生成最新的數(shù)據(jù),根據(jù)熱量的消耗以及睡眠模式來進行追蹤;交友網(wǎng)站

利用數(shù)據(jù)分析工具來幫助需要的人匹配合適的對象;基于城市實時交通信息,利用社交網(wǎng)絡

和天氣數(shù)據(jù)來優(yōu)化最新的交通情況。

7.醫(yī)療衛(wèi)生與生命科學

利用遠程醫(yī)療監(jiān)控能夠簡化醫(yī)護人員訪問并分析病患醫(yī)療記錄的流程,從而確保病人得

到有效診療并降低不必要的成本;臨床數(shù)據(jù)流分析能夠順利識別出異?;蛘哳A料之外的行為

或者表現(xiàn),從而輔助做出更準確的診斷意見;實時傳感器數(shù)據(jù)分析有助于檢測傳染病暴發(fā)的

可能性,并通過早期預警系統(tǒng)提示預防及準備;數(shù)據(jù)分析應用能夠在幾分鐘內(nèi)解碼整個DNA,

從而制定出更科學的治療方案,甚至對疾病進行預測,達到疾病預防的目的。

1.2數(shù)據(jù)分析工具

隨著云計算、大數(shù)據(jù)以及人工智能技術的快速發(fā)展,Python及其開發(fā)生態(tài)環(huán)境正在受

4到越來越多的關注。Python已經(jīng)成為計算機世界最重要的語言之一,更是數(shù)據(jù)分析的首

P選語言。

y

t

h

o1.2.1常用工具

數(shù)據(jù)分析n

主流數(shù)據(jù)分析語言有Python、R和MATLAB。

Python具有豐富和強大的類庫,能夠把其他語言模塊很輕松地連接在一起,是一門易學、

易用的程序設計語言。

R語言主要用于統(tǒng)計分析、繪圖等,它屬于GNU系統(tǒng)的一個自由、免費、源代碼開放的軟件。

MATLAB的作用是進行矩陣運算、回執(zhí)函數(shù)與數(shù)據(jù)、實現(xiàn)算法、創(chuàng)建用戶界面和連接其

他編程語言的程序等,主要應用于工程計算、控制設計、信號處理與通信、圖像處理、信號

檢測、金融建模設計與分析等領域。

Python、R和MATLAB數(shù)據(jù)分析工具對比如表1-1所示。

表1-1Python、R和MATLAB對比

語言

PythonRMATLAB

項目

難易程度接口統(tǒng)一,學習曲線平緩接口眾多,學習曲線陡峭自由度大,學習曲線較為平緩

矩陣預算、數(shù)值分析、科學數(shù)

數(shù)據(jù)分析、機器學習、矩陣運算、

統(tǒng)計分析、機器學習、據(jù)可視化、機器學習、符號計算、

使用場景科學可視化、數(shù)字圖像處理、Web應

科學數(shù)據(jù)可視化數(shù)字圖像處理、數(shù)字信號處理、

用、網(wǎng)絡爬蟲、系統(tǒng)運維等

仿真模擬等

擁有大量專業(yè)的工具箱,在新

擁有大量的第三方庫,能夠簡便地擁有大量的包,能夠調(diào)用

第三方支持版本中加入了對C、C++、Java

調(diào)用C、C++、Java等其他語言C、C++、Java等其他語言

的支持

流行領域工業(yè)界>學術界工業(yè)界≈學術界工業(yè)界≤學術界

軟件成本開源免費開源免費商業(yè)收費

1.2.2Python數(shù)據(jù)分析

Python是一門應用十分廣泛的計算機編程語言,在數(shù)據(jù)科學領域具有無可比擬的優(yōu)勢,

逐漸成為數(shù)據(jù)科學領域的主流語言。Python數(shù)據(jù)分析具有五方面優(yōu)勢:

①語法簡單精練。比起其他編程語言,Python更容易學習和使用。

②功能強大的庫。大量優(yōu)秀好用的第三方庫,擴充了Python功能,提升了Python的能

力,使Python如虎添翼。

③功能強大。Python是一個混合體,豐富的工具使它介于傳統(tǒng)的腳本語言和系統(tǒng)語言之

間。Python不僅具備簡單易用的特點,還提供了編譯語言所具有的軟件工程能力。

④不僅適用于研究和原型構建,同時也適用于構建生產(chǎn)系統(tǒng)。研究人員和工程技術人

員使用同一種編程工具,可給企業(yè)帶來顯著的組織效益,并降低企業(yè)的運營成本。

⑤Python是一門“膠水”語言。Python程序能夠以多種方式輕易地與其他語言的組件“粘

接”在一起,例如Python的C語言API可以幫助Python程序靈活地調(diào)用C程序。因此,可

以根據(jù)需要給Python程序添加功能,或者其他環(huán)境系統(tǒng)中使用Python。

Python數(shù)據(jù)分析除了使用Python基礎外,還需要第三方類庫。

1.NumPy

NumPy是NumericalPython的簡稱,是Python語言的一個科學計算的擴展程序庫,支持

大量的多維度數(shù)組與矩陣運算,此外也針對數(shù)組運算提供大量的數(shù)學函數(shù)庫。NumPy主要提5

供以下內(nèi)容:第

①快速高效的多維數(shù)組對象ndarray。

1

廣播功能函數(shù),廣播是一種對數(shù)組執(zhí)行數(shù)學運算的函數(shù),其執(zhí)行的是元素級計算。

廣播提供了算術運算期間處理不同形狀的數(shù)組的能力。

P

③y

讀/寫硬盤上基于數(shù)組的數(shù)組集的工具。t

h

o

④n

線性代數(shù)運算、傅里葉變換及隨機數(shù)生成功能。數(shù)據(jù)分析概述

⑤將C、C++、Fortran代碼集成到Python的工具。

除了為Python提供快速的數(shù)組處理能力外,NumPy在數(shù)據(jù)分析方面還有另外一個主要作

用,即作為算法之間傳遞數(shù)據(jù)的容器。對于數(shù)值型數(shù)據(jù),使用NumPy數(shù)組存儲和處理數(shù)據(jù)要

比使用內(nèi)置的Python數(shù)據(jù)結構高效得多。此外,由其他語言(如C語言)編寫的庫可以直接

操作NumPy數(shù)組中數(shù)據(jù),無須進行任何數(shù)據(jù)復制工作。

2.Pandas

Pandas是Python的數(shù)據(jù)分析核心庫,最初被作為金融數(shù)據(jù)分析工具而開發(fā)出來。Pandas

為時間序列分析提供了很好的支持。Pandas納入了大量庫和一些標準的數(shù)據(jù)模型,提供了高

效地操作大型數(shù)據(jù)集所需的工具,提供一系列能夠快速、便捷地處理結構化數(shù)據(jù)的結構和函

數(shù)。Python之所以成為強大而高效的數(shù)據(jù)分析環(huán)境與它息息相關。

Pandas兼具NumPy高性能的數(shù)組計算功能以及電子表格和關系型數(shù)據(jù)庫(如SQL)的靈

活數(shù)據(jù)處理功能,它提供了復雜精細的索引功能,以便便捷地完成重塑、切片和切換、聚合

及選取數(shù)據(jù)子集等操作。

3.Matplotlib

Matplotlib是最流行的用于繪制數(shù)據(jù)圖形的Python庫,它以各種硬拷貝格式和跨平臺的

交互式環(huán)境生成出高質(zhì)量的圖形。Matplotlib最初由JohnD.Hunter創(chuàng)建,目前由一個龐大的

開發(fā)團隊維護。Matplotlib的操作比較容易,只需要幾行代碼即可生成線形圖、散點圖、直方

圖、條形圖和箱線圖等,甚至可以繪制三維圖形。

4.Sklearn

Sklearn(Scikit-Learn)是一個簡單高效的數(shù)據(jù)挖掘和數(shù)據(jù)分析工具,可以供用戶在各種環(huán)

境下重復使用。而且Sklearn建立在NumPy、SciPy和Matplotlib基礎之上,對一些常用的算法

進行了封裝。目前,Sklearn的基本模塊主要有數(shù)據(jù)預處理、模型選擇、分類、聚類、數(shù)據(jù)降維

和回歸6個。在數(shù)據(jù)量不大的情況下,Sklearn可以解決大部分問題。對算法不精通的用戶在執(zhí)

行建模任務時,并不需要自行編寫所有算法,只需要簡單地調(diào)用Sklearn庫中的模塊即可。

5.其他

xlrd和openpyxl是讀取Excel文件需要的類庫;Seaborn與Matplotlib類似,主要作用是

繪制圖形,但是Seaborn自帶了一些數(shù)據(jù)集,可以用來練習。

1.3Python數(shù)據(jù)分析環(huán)境

Python數(shù)據(jù)分析環(huán)境的搭建包括Python安裝以及多個第三方庫的安裝。

先安裝Python,再分別安裝需要的第三方庫。讀者如果想省事,也可以采用安裝Anaconda

6的方式簡化安裝。Anaconda包含了本書使用的所有第三方庫,有興趣的讀者也可以自行安裝

PAnaconda。因為本書使用的開發(fā)環(huán)境并不復雜,因此沒有使用Anaconda。

y

t

h注意:安裝過程需要網(wǎng)絡,因為需要先下載再安裝。

o

n

數(shù)據(jù)分析1.安裝Python

Python數(shù)據(jù)分

本書讀者應該具備Python基礎,因此不再贅述Python的安裝。

析環(huán)境搭建

注意:在安裝Python時,一定要同時安裝PIP,否則下邊的安裝都無法進行。

2.安裝數(shù)據(jù)分析庫

(1)安裝第三方數(shù)據(jù)分析庫

第三方庫的安裝使用pip3命令,如下所示:

pip3installnumpy

pip3installscipy

pip3installmatplotlib

pip3installsklearn

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論