《大數(shù)據(jù)運(yùn)營(yíng)》 課件 第4-6章 基于Python的數(shù)據(jù)處理技術(shù)、基于Python的數(shù)據(jù)統(tǒng)計(jì)與可視化、大數(shù)據(jù)運(yùn)營(yíng)綜合應(yīng)用_第1頁(yè)
《大數(shù)據(jù)運(yùn)營(yíng)》 課件 第4-6章 基于Python的數(shù)據(jù)處理技術(shù)、基于Python的數(shù)據(jù)統(tǒng)計(jì)與可視化、大數(shù)據(jù)運(yùn)營(yíng)綜合應(yīng)用_第2頁(yè)
《大數(shù)據(jù)運(yùn)營(yíng)》 課件 第4-6章 基于Python的數(shù)據(jù)處理技術(shù)、基于Python的數(shù)據(jù)統(tǒng)計(jì)與可視化、大數(shù)據(jù)運(yùn)營(yíng)綜合應(yīng)用_第3頁(yè)
《大數(shù)據(jù)運(yùn)營(yíng)》 課件 第4-6章 基于Python的數(shù)據(jù)處理技術(shù)、基于Python的數(shù)據(jù)統(tǒng)計(jì)與可視化、大數(shù)據(jù)運(yùn)營(yíng)綜合應(yīng)用_第4頁(yè)
《大數(shù)據(jù)運(yùn)營(yíng)》 課件 第4-6章 基于Python的數(shù)據(jù)處理技術(shù)、基于Python的數(shù)據(jù)統(tǒng)計(jì)與可視化、大數(shù)據(jù)運(yùn)營(yíng)綜合應(yīng)用_第5頁(yè)
已閱讀5頁(yè),還剩183頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

基于Python的數(shù)據(jù)處理技術(shù)本章知識(shí)點(diǎn)(1)了解網(wǎng)絡(luò)爬蟲(chóng)與數(shù)據(jù)采集的概念。(2)理解NumPy數(shù)值計(jì)算庫(kù)。(3)理解Pandas數(shù)據(jù)分庫(kù)。(4)掌握網(wǎng)絡(luò)爬蟲(chóng)與數(shù)據(jù)采集的方法。(5)掌握NumPy和Pandas應(yīng)用。01網(wǎng)絡(luò)爬蟲(chóng)與數(shù)據(jù)采集02數(shù)據(jù)處理PART01網(wǎng)絡(luò)爬蟲(chóng)與數(shù)據(jù)采集網(wǎng)絡(luò)爬蟲(chóng)網(wǎng)絡(luò)爬蟲(chóng)是一種數(shù)據(jù)采集的主要方式,也是通過(guò)網(wǎng)絡(luò)獲取數(shù)據(jù)信息的主要手段和工具。談起網(wǎng)絡(luò)爬蟲(chóng),離不開(kāi)搜索引擎,搜索引擎是伴隨互聯(lián)網(wǎng)的發(fā)展而產(chǎn)生和發(fā)展的,幾乎每個(gè)人上網(wǎng)都會(huì)使用搜索引擎,例如百度、谷歌都是大家常用的搜索引擎。搜索引擎的工作過(guò)程可以簡(jiǎn)單視為從互聯(lián)網(wǎng)上抓取信息、建立索引、搜索信息三個(gè)部分,抓取信息的主要方式就是采用網(wǎng)絡(luò)爬蟲(chóng)。網(wǎng)絡(luò)爬蟲(chóng),又稱(chēng)為網(wǎng)絡(luò)蜘蛛,網(wǎng)絡(luò)機(jī)器人,是一種按照一定的規(guī)則,自動(dòng)地抓取互聯(lián)網(wǎng)信息的程序或者腳本。網(wǎng)絡(luò)蜘蛛即WebSpider,是一個(gè)非常形象的名字。把互聯(lián)網(wǎng)比喻成一個(gè)蜘蛛網(wǎng),那么Spider就是在網(wǎng)上爬來(lái)爬去的蜘蛛。網(wǎng)絡(luò)蜘蛛是通過(guò)網(wǎng)頁(yè)的鏈接地址來(lái)尋找網(wǎng)頁(yè),從網(wǎng)站某一個(gè)頁(yè)面(通常是首頁(yè))開(kāi)始,讀取網(wǎng)頁(yè)的內(nèi)容,找到在網(wǎng)頁(yè)中的其它鏈接地址,然后通過(guò)這些鏈接地址尋找下一個(gè)網(wǎng)頁(yè),這樣一直循環(huán)下去,直到把這個(gè)網(wǎng)站所有的網(wǎng)頁(yè)都抓取完為止。如果把整個(gè)互聯(lián)網(wǎng)當(dāng)成一個(gè)網(wǎng)站,那么網(wǎng)絡(luò)蜘蛛就可以用這個(gè)原理把互聯(lián)網(wǎng)上所有的網(wǎng)頁(yè)都抓取下來(lái)。這樣看來(lái),網(wǎng)絡(luò)蜘蛛就是一個(gè)爬行程序,一個(gè)抓取網(wǎng)頁(yè)的程序。網(wǎng)絡(luò)蜘蛛實(shí)際上是一種電腦“機(jī)器人”(ComputerRobot),一種專(zhuān)門(mén)用于檢索信息的“機(jī)器人”程序,就像蜘蛛一樣在網(wǎng)絡(luò)間爬來(lái)爬去,反反復(fù)復(fù),不知疲倦。所以,網(wǎng)絡(luò)爬蟲(chóng)也叫網(wǎng)絡(luò)機(jī)器人。網(wǎng)絡(luò)爬蟲(chóng)除了通過(guò)頁(yè)面進(jìn)行數(shù)據(jù)采集,也可以通過(guò)各種網(wǎng)絡(luò)接口采集數(shù)據(jù),例如通過(guò)RestfulAPI接口訪(fǎng)問(wèn)數(shù)據(jù),這樣獲取的數(shù)據(jù)格式更加規(guī)范,更加易于處理。網(wǎng)絡(luò)爬蟲(chóng)有網(wǎng)絡(luò)爬蟲(chóng)就有反爬蟲(chóng)。有些網(wǎng)站為了避免數(shù)據(jù)被爬取,會(huì)采用各種各樣的反爬蟲(chóng)措施。反爬蟲(chóng)技術(shù)主要分為兩個(gè)環(huán)節(jié),一是識(shí)別爬蟲(chóng)、二是對(duì)爬取信息做出限制。對(duì)應(yīng)我們的網(wǎng)站也可以設(shè)置網(wǎng)絡(luò)爬蟲(chóng)的規(guī)則,這里就涉及到robots協(xié)議。Robots協(xié)議(也稱(chēng)為爬蟲(chóng)協(xié)議、機(jī)器人協(xié)議等)的全稱(chēng)是“網(wǎng)絡(luò)爬蟲(chóng)排除標(biāo)準(zhǔn)”(RobotsExclusionProtocol),網(wǎng)站通過(guò)Robots協(xié)議告訴搜索引擎哪些頁(yè)面可以抓取,哪些頁(yè)面不能抓取。其目的是保護(hù)網(wǎng)站數(shù)據(jù)和敏感信息,確保用戶(hù)個(gè)人信息和隱私不被侵犯。robots.txt(統(tǒng)一小寫(xiě))是一種存放于網(wǎng)站根目錄下的ASCII編碼的文本文件,對(duì)搜索引擎訪(fǎng)問(wèn)的內(nèi)容進(jìn)行限制。

為什么需要Robots協(xié)議呢?互聯(lián)網(wǎng)上的網(wǎng)頁(yè)是通過(guò)超級(jí)鏈接互相關(guān)聯(lián)起來(lái)的,從而形成了網(wǎng)頁(yè)的網(wǎng)狀結(jié)構(gòu)。爬蟲(chóng)的工作方式就像蜘蛛在網(wǎng)上沿著鏈接爬來(lái)爬去,對(duì)于網(wǎng)站的管理者來(lái)說(shuō),就存在這樣的需求,某些路徑下是個(gè)人隱私或者網(wǎng)站管理使用,不想被搜索引擎抓取,比如說(shuō)商品數(shù)據(jù);網(wǎng)站內(nèi)容的所有者是網(wǎng)站管理員,搜索引擎應(yīng)該尊重所有者的意愿,為了滿(mǎn)足以上要求,就需要提供一種網(wǎng)站和爬蟲(chóng)進(jìn)行溝通的途徑,給網(wǎng)站管理員表達(dá)自己意愿的機(jī)會(huì)。那么robots協(xié)議就此誕生,通過(guò)robots協(xié)議設(shè)置允許網(wǎng)絡(luò)爬蟲(chóng)爬取信息的權(quán)限和范圍。數(shù)據(jù)采集數(shù)據(jù)采集是更大的概念,上節(jié)所述的網(wǎng)絡(luò)爬蟲(chóng)只是數(shù)據(jù)采集的一種方式。數(shù)據(jù)采集是進(jìn)行大數(shù)據(jù)分析的前提也是必要條件,在整個(gè)流程中占據(jù)重要地位。數(shù)據(jù)采集的流程即使從網(wǎng)絡(luò)爬蟲(chóng)的方式來(lái)講也涉及到幾個(gè)環(huán)節(jié),一是通過(guò)網(wǎng)絡(luò)爬蟲(chóng)爬取數(shù)據(jù),二是爬取數(shù)據(jù)需要把數(shù)據(jù)存儲(chǔ)起來(lái),三是存儲(chǔ)的數(shù)據(jù)進(jìn)行數(shù)據(jù)的清洗等。本節(jié)概述完數(shù)據(jù)采集后,我們對(duì)網(wǎng)絡(luò)爬蟲(chóng)及數(shù)據(jù)采集涉及到的一些基本概念和技術(shù)做進(jìn)一步的介紹。常見(jiàn)的數(shù)據(jù)采集方式有系統(tǒng)日志采集法、數(shù)據(jù)庫(kù)采集、網(wǎng)絡(luò)數(shù)據(jù)采集法以及其他數(shù)據(jù)采集法等等。網(wǎng)絡(luò)數(shù)據(jù)采集法就是本章的網(wǎng)絡(luò)爬蟲(chóng)涉及到的內(nèi)容。數(shù)據(jù)采集系統(tǒng)日志采集法,顯而易見(jiàn),就是采集日志信息。在我們的操作系統(tǒng)中,我們使用的各種應(yīng)用與服務(wù),大部分都有日志文件,系統(tǒng)日志、應(yīng)用日志、安全日志等。我們都知道Linux操作系統(tǒng)在服務(wù)器中應(yīng)用非常廣泛,Linux就有非常完備的日志管理系統(tǒng);用于記錄Linux操作系統(tǒng)中各種運(yùn)行的消息,不同的日志文件記載了不同類(lèi)型的信息,如Linux內(nèi)核消息、用戶(hù)登錄事件、程序錯(cuò)誤等。Linux系統(tǒng)上運(yùn)行的各種應(yīng)用程序也提供日志管理,例如Web應(yīng)用服務(wù)系統(tǒng)Nginx或者Tomcat應(yīng)用,我們就可以從Nginx或者Tomcat應(yīng)用服務(wù)器中采集到每個(gè)訪(fǎng)問(wèn)用戶(hù)的來(lái)源IP地址、訪(fǎng)問(wèn)時(shí)間、瀏覽的頁(yè)面、用戶(hù)使用的瀏覽器信息等等,通過(guò)這些信息,我們可以用來(lái)分析頁(yè)面點(diǎn)擊量,分析哪些頁(yè)面更受用戶(hù)喜歡。數(shù)據(jù)庫(kù)采集數(shù)據(jù)采集數(shù)據(jù)庫(kù)采集主要從數(shù)據(jù)庫(kù)系統(tǒng)中采集數(shù)據(jù),傳統(tǒng)企業(yè)會(huì)使用傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)MySQL和Oracle等來(lái)存儲(chǔ)數(shù)據(jù)。隨著大數(shù)據(jù)時(shí)代的到來(lái),Redis、MongoDB和HBase等NoSQL數(shù)據(jù)庫(kù)也常用于數(shù)據(jù)的采集。企業(yè)通過(guò)在采集端部署大量數(shù)據(jù)庫(kù),并在這些數(shù)據(jù)庫(kù)之間進(jìn)行負(fù)載均衡和分片,來(lái)完成大數(shù)據(jù)采集工作。關(guān)于數(shù)據(jù)庫(kù),我們知道有關(guān)系型數(shù)據(jù)庫(kù)和非關(guān)系型數(shù)據(jù)庫(kù)之分,關(guān)系型數(shù)據(jù)庫(kù)的數(shù)據(jù)結(jié)構(gòu)定義是嚴(yán)格和約束嚴(yán)謹(jǐn)?shù)模瑪?shù)據(jù)存儲(chǔ)的單元是數(shù)據(jù)庫(kù)表,數(shù)據(jù)庫(kù)表有各種數(shù)據(jù)類(lèi)型的字段,數(shù)據(jù)庫(kù)表之間通過(guò)外鍵形成關(guān)系。我們把關(guān)系型數(shù)據(jù)庫(kù)存儲(chǔ)的數(shù)據(jù)稱(chēng)之謂結(jié)構(gòu)化數(shù)據(jù)。關(guān)系型數(shù)據(jù)庫(kù)對(duì)應(yīng)的有非關(guān)系型數(shù)據(jù)庫(kù),存儲(chǔ)的是非結(jié)構(gòu)化的數(shù)據(jù),什么是非結(jié)構(gòu)化的數(shù)據(jù)呢?我們常見(jiàn)的文檔、圖片、視頻這類(lèi)數(shù)據(jù)就是非結(jié)構(gòu)化數(shù)據(jù)?;ヂ?lián)網(wǎng)上我們?yōu)g覽到的更多的就是這類(lèi)數(shù)據(jù)。網(wǎng)絡(luò)爬蟲(chóng)主要針對(duì)的就是這類(lèi)非結(jié)構(gòu)化的數(shù)據(jù)。網(wǎng)絡(luò)采集到的數(shù)據(jù)需要進(jìn)行存儲(chǔ),就需要技術(shù)人員選擇存儲(chǔ)的方式,是選擇關(guān)系型數(shù)據(jù)庫(kù)還是非關(guān)系型數(shù)據(jù)庫(kù),需要技術(shù)人員對(duì)這兩種不同類(lèi)型的數(shù)據(jù)庫(kù)優(yōu)勢(shì)、劣勢(shì)非常清楚才能做出合理和正確的選型。其他數(shù)據(jù)采集包括感知設(shè)備數(shù)據(jù)采集,通過(guò)傳感器、攝像頭和其他智能終端自動(dòng)采集信號(hào)、圖片或錄像來(lái)獲取數(shù)據(jù)等,這里不做過(guò)多敘述。網(wǎng)絡(luò)爬蟲(chóng)與數(shù)據(jù)采集相關(guān)知識(shí)本章會(huì)通過(guò)代碼來(lái)展示網(wǎng)絡(luò)爬蟲(chóng)和數(shù)據(jù)采集的過(guò)程,讓讀者能夠通過(guò)代碼擴(kuò)展更多的概念,掌握一些入門(mén)的技術(shù)。網(wǎng)絡(luò)爬蟲(chóng)和數(shù)據(jù)采集我們會(huì)提供一個(gè)完整的、簡(jiǎn)單的項(xiàng)目案例,通過(guò)從網(wǎng)絡(luò)上爬取未來(lái)7天的天氣數(shù)據(jù),進(jìn)行一些簡(jiǎn)單的處理。主要涉及到的知識(shí)有Python編程語(yǔ)言、http或https網(wǎng)絡(luò)請(qǐng)求、RestfulAPI編程接口、Python網(wǎng)絡(luò)相關(guān)軟件模塊等。下面逐一進(jìn)行介紹。案例網(wǎng)絡(luò)爬蟲(chóng)與數(shù)據(jù)采集相關(guān)知識(shí)1.Python編程語(yǔ)言Python編程語(yǔ)言在大數(shù)據(jù)、人工智能技術(shù)中應(yīng)用非常廣泛,后面小節(jié)會(huì)采用Python編程語(yǔ)言進(jìn)行代碼實(shí)現(xiàn),代碼實(shí)現(xiàn)相對(duì)簡(jiǎn)單,讀者可以自行安裝一個(gè)Python編程環(huán)境,通過(guò)代碼來(lái)認(rèn)識(shí)Python,掌握最基本的Python語(yǔ)言程序結(jié)構(gòu)即可。讓我們認(rèn)識(shí)一下基本的程序結(jié)構(gòu):#-*-coding:UTF-8-*-defsay_hello():greet_string="hello,world!"#定義一個(gè)字符串print(greet_string)#打印字符串if__name__=='__main__':#程序入口say_hello()保存文件為helloWorld.py,運(yùn)行程序命令:python.\helloWorld.py,就會(huì)輸出hello,world!字符串。在這個(gè)簡(jiǎn)單的程序中,我們定義了一個(gè)函數(shù)say_hello(),在main主程序體種調(diào)用了該函數(shù)。并對(duì)程序作了部分的注釋。網(wǎng)絡(luò)爬蟲(chóng)與數(shù)據(jù)采集相關(guān)知識(shí)2.網(wǎng)絡(luò)請(qǐng)求網(wǎng)絡(luò)爬蟲(chóng)需要訪(fǎng)問(wèn)互聯(lián)網(wǎng),因此,我們需要了解訪(fǎng)問(wèn)互聯(lián)網(wǎng)所使用的協(xié)議http、https、頁(yè)面的請(qǐng)求(request)與響應(yīng)(response)的概念。我們通過(guò)瀏覽器訪(fǎng)問(wèn)一個(gè)常用的網(wǎng)站:。打開(kāi)瀏覽器開(kāi)發(fā)者工具,訪(fǎng)問(wèn)截圖如下:通過(guò)開(kāi)發(fā)者工具查看的截圖,我們可以看到請(qǐng)求的網(wǎng)頁(yè)的詳細(xì)信息,你可以看到請(qǐng)求、響應(yīng)的數(shù)據(jù),可以查看到cookie、session,可以查詢(xún)到網(wǎng)頁(yè)使用的css樣式文件、js文件以及圖片等數(shù)據(jù)。具體大家可以通過(guò)瀏覽器打開(kāi)開(kāi)發(fā)者工具詳細(xì)探索一番。這里主要講一些基本的概念。這里要講的就是http和https。網(wǎng)絡(luò)爬蟲(chóng)與數(shù)據(jù)采集相關(guān)知識(shí)剛才我們?cè)L問(wèn)的詳細(xì)地址是“”,使用的就是https協(xié)議。http和https是實(shí)現(xiàn)網(wǎng)絡(luò)通信的網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)協(xié)議是計(jì)算機(jī)之間為了實(shí)現(xiàn)網(wǎng)絡(luò)通信而達(dá)成的一種“約定”或者”規(guī)則“,有了這種”約定“,不同廠(chǎng)商的生產(chǎn)設(shè)備,以及不同操作系統(tǒng)組成的計(jì)算機(jī)之間,就可以實(shí)現(xiàn)通信。HTTP協(xié)議是超文本傳輸協(xié)議的縮寫(xiě),英文是HyperTextTransferProtocol。它是從WEB服務(wù)器傳輸超文本標(biāo)記語(yǔ)言(HTML)到本地瀏覽器的傳送協(xié)議。http協(xié)議支持客戶(hù)端/服務(wù)端模式,也是一種請(qǐng)求/響應(yīng)模式的協(xié)議。請(qǐng)求方法常用的有GET、POST、patch、delete。從剛才我們請(qǐng)求的截圖中就能看到采用的請(qǐng)求方法是get。HTTPS是HTTP協(xié)議的安全版本,HTTP協(xié)議的數(shù)據(jù)傳輸是明文的,是不安全的,HTTPS使用了SSL/TLS協(xié)議進(jìn)行了加密處理。HTTPS協(xié)議(HyperTextTransferProtocoloverSecureSocketLayer),一般理解為HTTP+SSL/TLS,通過(guò)SSL證書(shū)來(lái)驗(yàn)證服務(wù)器的身份,并為瀏覽器和服務(wù)器之間的通信進(jìn)行加密來(lái)實(shí)現(xiàn)數(shù)據(jù)的安全性。SSL(SecureSocketLayer,安全套接字層),為數(shù)據(jù)通訊提供安全支持。http和https使用連接方式不同,默認(rèn)端口也不一樣,http是80,https是443。網(wǎng)絡(luò)爬蟲(chóng)與數(shù)據(jù)采集相關(guān)知識(shí)通過(guò)開(kāi)發(fā)者工具你可以看到請(qǐng)求頭和響應(yīng)頭,這在網(wǎng)絡(luò)請(qǐng)求、web前端開(kāi)發(fā)中經(jīng)常用到的知識(shí)。請(qǐng)求頭:請(qǐng)求頭是客戶(hù)端發(fā)送給服務(wù)器端的一些信息,使用鍵值對(duì)表示,常見(jiàn)的請(qǐng)求頭及其含義如下:常見(jiàn)請(qǐng)求頭描述Referer瀏覽器通知服務(wù)器,當(dāng)前請(qǐng)求來(lái)自何處。如果是直接訪(fǎng)問(wèn),則不會(huì)有這個(gè)頭。常用于:防盜鏈If-Modified-Since瀏覽器通知服務(wù)器,本地緩存的最后變更時(shí)間。與另一個(gè)響應(yīng)頭組合控制瀏覽器頁(yè)面的緩存。Cookie與會(huì)話(huà)有關(guān)技術(shù),用于存放瀏覽器緩存的cookie信息。User-Agent瀏覽器通知服務(wù)器,客戶(hù)端瀏覽器與操作系統(tǒng)相關(guān)信息Connection保持連接狀態(tài)。Keep-Alive連接中,close已關(guān)閉Host請(qǐng)求的服務(wù)器主機(jī)名Content-Length請(qǐng)求體的長(zhǎng)度Content-Type如果是POST請(qǐng)求,會(huì)有這個(gè)頭,默認(rèn)值為application/x-www-form-urlencoded,表示請(qǐng)求體內(nèi)容使用url編碼Accept:瀏覽器可支持的MIME類(lèi)型。文件類(lèi)型的一種描述方式。MIME格式:大類(lèi)型/小類(lèi)型[;參數(shù)]例如:text/html,html文件text/css,css文件text/javascript,js文件image/*,所有圖片文件Accept-Encoding瀏覽器通知服務(wù)器,瀏覽器支持的數(shù)據(jù)壓縮格式。如:GZIP壓縮Accept-Language瀏覽器通知服務(wù)器,瀏覽器支持的語(yǔ)言。各國(guó)語(yǔ)言(國(guó)際化i18n)網(wǎng)絡(luò)爬蟲(chóng)與數(shù)據(jù)采集相關(guān)知識(shí)響應(yīng)頭:響應(yīng)也是鍵值對(duì)形式,服務(wù)器端將信息以鍵值對(duì)的形式返回給客戶(hù)端。常見(jiàn)請(qǐng)求頭描述Location指定響應(yīng)的路徑,需要與狀態(tài)碼302配合使用,完成跳轉(zhuǎn)。Content-Type響應(yīng)正文的類(lèi)型(MIME類(lèi)型)取值:text/html;charset=UTF-8Content-Disposition通過(guò)瀏覽器以下載方式解析正文取值:attachment;filename=xx.zipSet-Cookie與會(huì)話(huà)相關(guān)技術(shù)。服務(wù)器向?yàn)g覽器寫(xiě)入cookieContent-Encoding服務(wù)器使用的壓縮格式取值:gzipContent-length響應(yīng)正文的長(zhǎng)度Refresh定時(shí)刷新,格式:秒數(shù);url=路徑。url可省略,默認(rèn)值為當(dāng)前頁(yè)。取值:3;url=//三秒刷新頁(yè)面到Server指的是服務(wù)器名稱(chēng),默認(rèn)值:Apache-Coyote/1.1??梢酝ㄟ^(guò)conf/server.xml配置進(jìn)行修改。<Connectorport="8080"...server="itcast"/>Last-Modified服務(wù)器通知瀏覽器,文件的最后修改時(shí)間。與If-Modified-Since一起使用。網(wǎng)絡(luò)爬蟲(chóng)與數(shù)據(jù)采集相關(guān)知識(shí)3.RESTfulAPI接口與JSON數(shù)據(jù)格式要弄清楚什么是RESTfulAPI,首先要知道REST是什么。1)表示性狀態(tài)轉(zhuǎn)移(representationstatetransfer,REST)用URI表示資源,用HTTP的方法(GET,POST,PUT,DELETE)表征對(duì)這些資源進(jìn)行操作。RESTfulAPI就是REST風(fēng)格的API?,F(xiàn)在終端平臺(tái)多樣,移動(dòng)、平板、PC等許多媒介向服務(wù)端發(fā)送請(qǐng)求后,如果不適用RESTfulAPI,需要為每個(gè)平臺(tái)的數(shù)據(jù)請(qǐng)求定義相應(yīng)的返回格式,以適應(yīng)前端顯示。但是RESTfulAPI要求前端以一種預(yù)定義的語(yǔ)法格式發(fā)送請(qǐng)求,那么服務(wù)端就只需要定義一個(gè)統(tǒng)一的響應(yīng)接口,不必像之前那樣解析各色各式的請(qǐng)求。Resource:資源,即數(shù)據(jù),存在互聯(lián)網(wǎng)上的可被訪(fǎng)問(wèn)的實(shí)體Representation:數(shù)據(jù)的某種表現(xiàn)形式,如HTML,JSON。StateTransfer:狀態(tài)變化,HTTP方法實(shí)現(xiàn)網(wǎng)絡(luò)爬蟲(chóng)與數(shù)據(jù)采集相關(guān)知識(shí)2)RESTful是典型的基于HTTP的協(xié)議RESTful有以下設(shè)計(jì)原則和規(guī)范資源首先要明確資源就是網(wǎng)絡(luò)上的一個(gè)實(shí)體,可以是文本、圖片、音頻、視頻。資源總是以一定的格式來(lái)表現(xiàn)自己。文本用txt、html;圖片用JPG、JPEG等等。而JSON是RESTfulAPI中最常用的資源表現(xiàn)格式。統(tǒng)一接口對(duì)于業(yè)務(wù)數(shù)據(jù)的CRUD,RESTful用HTTP方法與之對(duì)應(yīng)。URI統(tǒng)一資源標(biāo)識(shí)符,它可以唯一標(biāo)識(shí)一個(gè)資源。注意到,URL(統(tǒng)一資源定位符)是一種URI,因?yàn)樗梢晕ㄒ粯?biāo)志資源。但URL!=URI。應(yīng)該說(shuō)URL是URI的子集。因?yàn)閁RL使用路徑來(lái)唯一標(biāo)識(shí)資源,這只是唯一標(biāo)識(shí)資源的一種方式。還可以用一個(gè)唯一編號(hào)來(lái)標(biāo)識(shí)資源,如example.html.fuce2da23。只不過(guò)這種方式并不被廣泛使用??傊?,要在概念上對(duì)URL和URI有所區(qū)分。無(wú)狀態(tài)所謂無(wú)狀態(tài)是指所有資源都可以用URI定位,而且這個(gè)定位與其他資源無(wú)關(guān),不會(huì)因?yàn)槠渌Y源的變動(dòng)而變化。這里引入一個(gè)冪等性的概念:無(wú)論一個(gè)操作被執(zhí)行一次還是多次,執(zhí)行后的效果都相同。比如對(duì)某資源發(fā)送GET請(qǐng)求,如果訪(fǎng)問(wèn)一次和訪(fǎng)問(wèn)十次獲得的數(shù)據(jù)一樣,那么就說(shuō)這個(gè)請(qǐng)求具有冪等性。01030402網(wǎng)絡(luò)爬蟲(chóng)與數(shù)據(jù)采集相關(guān)知識(shí)3)JSON(JavaScriptObjectNotation)是一種輕量級(jí)的數(shù)據(jù)交換格式JSON采用完全獨(dú)立于語(yǔ)言的文本格式,這些特性使JSON成為理想的數(shù)據(jù)交換語(yǔ)言。易于人閱讀和編寫(xiě),同時(shí)也易于機(jī)器解析和生成。JSON數(shù)據(jù)格式有兩種結(jié)構(gòu):“名稱(chēng)/值”對(duì)的集合(Acollectionofname/valuepairs)。不同的語(yǔ)言中,它被理解為對(duì)象(object),記錄(record),結(jié)構(gòu)(struct),字典(dictionary),哈希表(hashtable),有鍵列表(keyedlist),或者關(guān)聯(lián)數(shù)組(associativearray)。示例:{"firstName":"Jack","lastName":"Smith","email":"smith@"}值的有序列表(Anorderedlistofvalues)。在大部分語(yǔ)言中,它被理解為數(shù)組(array)。{"people":[{"firstName":"Brett","lastName":"McLaughlin","email":"aaaa"},{"firstName":"Jason","lastName":"Hunter","email":"bbbb"},{"firstName":"Elliotte","lastName":"Harold","email":"cccc"}]}網(wǎng)絡(luò)爬蟲(chóng)與數(shù)據(jù)采集相關(guān)知識(shí)4)RESTfulAPI接口以及JSON數(shù)據(jù)格式如何調(diào)用一個(gè)http接口。這里有一個(gè)開(kāi)放免費(fèi)的天氣API,大家可以自己注冊(cè)一個(gè)免費(fèi)賬號(hào)進(jìn)行測(cè)試。接口如下:接口解釋?zhuān)篣rl:/free/week/api方法(method):GET請(qǐng)求的參數(shù):appid、appsecret、city,appid和appsecret是注冊(cè)用戶(hù)的id和密鑰,用于安全認(rèn)證使用。接下來(lái)我們直接從瀏覽器中訪(fǎng)問(wèn)查看返回的數(shù)據(jù)。/free/week?appid=53487633&appsecret=eQs06GRV&city=北京網(wǎng)絡(luò)爬蟲(chóng)及數(shù)據(jù)采集應(yīng)用本節(jié)我們希望能夠掌握簡(jiǎn)單的數(shù)據(jù)采集的實(shí)現(xiàn),主要介紹采用Python語(yǔ)言進(jìn)行程序編寫(xiě),使用Python網(wǎng)絡(luò)請(qǐng)求模塊進(jìn)行網(wǎng)絡(luò)請(qǐng)求,采集到的數(shù)據(jù)存儲(chǔ)到本地JSON格式文件。數(shù)據(jù)源來(lái)至于/網(wǎng),我們通過(guò)網(wǎng)絡(luò)請(qǐng)求獲取未來(lái)7天的天氣情況。本節(jié)主要是為了示例,不采集所有城市的數(shù)據(jù),選擇10個(gè)城市采集未來(lái)7天的天氣情況,城市選擇包括:北京、上海、廣州、深圳、南寧、桂林、天津、重慶、哈爾濱、拉薩。采集的接口如下:請(qǐng)求地址(URL):/free/week請(qǐng)求方法:GET請(qǐng)求參數(shù)說(shuō)明:參數(shù)名必選類(lèi)型說(shuō)明備注(示例)appid是string用戶(hù)appid需要注冊(cè)免費(fèi)賬號(hào),查看appidappsecret是string用戶(hù)appsecret需要注冊(cè)免費(fèi)賬號(hào),查看appsecretcityid否string城市ID請(qǐng)參考城市ID列表city否string城市名稱(chēng)不要帶市和區(qū),支持市區(qū)縣,不支持鄉(xiāng)鎮(zhèn)級(jí)別;如:青島、鐵西ip否stringIP地址查詢(xún)IP所在城市天氣callback否stringjsonp參數(shù)如:jQuery.Callbacksvue否string跨域參數(shù)如果您使用的是react、vue、angular請(qǐng)?zhí)顚?xiě)值:1網(wǎng)絡(luò)爬蟲(chóng)及數(shù)據(jù)采集應(yīng)用響應(yīng)參數(shù)說(shuō)明:參數(shù)名類(lèi)型說(shuō)明備注cityidString城市ID

cityString城市名稱(chēng)

update_timeString更新時(shí)間

dateString預(yù)報(bào)日期

weaString天氣情況

wea_imgString天氣對(duì)應(yīng)圖標(biāo)

tem_dayString白天溫度(高溫)

tem_nightString白天溫度(低溫)

winString風(fēng)向

win_speedString風(fēng)力等級(jí)網(wǎng)絡(luò)爬蟲(chóng)及數(shù)據(jù)采集應(yīng)用我們先采用postman軟件工具測(cè)試一個(gè)城市接口,采集“北京”未來(lái)7天的天氣情況:請(qǐng)求地址:/free/week?appid=53487633&appsecret=eQs06GRV&city=北京下面Python程序進(jìn)行10個(gè)城市的數(shù)據(jù)采集,先簡(jiǎn)單寫(xiě)一個(gè)城市的數(shù)據(jù)采集代碼:#-*-coding:UTF-8-*-importrequestsif__name__=='__main__':url='/free/week?appid=53487633&appsecret=eQs06GRV&city=北京'response=requests.get(url=url).json()print(response)程序文件保存在本地,文件名稱(chēng)為dataCollecting.py。這里需要解釋幾個(gè)知識(shí)點(diǎn):Python的程序運(yùn)行體在前面介紹過(guò),執(zhí)行該程序首先需要Python運(yùn)行環(huán)境,執(zhí)行過(guò)程只需要一個(gè)命令:python.\dataCollecting.py;requests模塊Python的一個(gè)軟件庫(kù),一個(gè)常用HTTP請(qǐng)求的模塊,它使用python語(yǔ)言編寫(xiě),可以方便的對(duì)網(wǎng)頁(yè)進(jìn)行爬取,是學(xué)習(xí)python爬蟲(chóng)較好的http請(qǐng)求模塊。安裝也非常簡(jiǎn)單:pipinstallrequests;json()是Python的內(nèi)置函數(shù),是把Python對(duì)象轉(zhuǎn)化成json數(shù)據(jù)格式的函數(shù)。網(wǎng)絡(luò)爬蟲(chóng)及數(shù)據(jù)采集應(yīng)用運(yùn)行結(jié)果:python.\dataCollecting.py{'cityid':'101010100','city':'北京','update_time':'2021-05-1217:54:01','data':[{'date':'2021-05-12','wea':'多云','wea_img':'yun','tem_day':'26','tem_night':'15','win':'東北風(fēng)','win_speed':'3-4級(jí)轉(zhuǎn)<3級(jí)'},{'date':'2021-05-13','wea':'多云','wea_img':'yun','tem_day':'26','tem_night':'16','win':'東南風(fēng)','win_speed':'3-4級(jí)轉(zhuǎn)<3級(jí)'},{'date':'2021-05-14','wea':'多云轉(zhuǎn)陰','wea_img':'yun','tem_day':'28','tem_night':'18','win':'東南風(fēng)','win_speed':'3-4級(jí)轉(zhuǎn)<3級(jí)'},{'date':'2021-05-15','wea':'小雨','wea_img':'yu','tem_day':'22','tem_night':'14','win':'北風(fēng)','win_speed':'3-4級(jí)'},{'date':'2021-05-16','wea':'多云轉(zhuǎn)晴','wea_img':'yun','tem_day':'25','tem_night':'15','win':'北風(fēng)','win_speed':'<3級(jí)'},{'date':'2021-05-17','wea':'晴','wea_img':'qing','tem_day':'28','tem_night':'14','win':'北風(fēng)','win_speed':'<3級(jí)'},{'date':'2021-05-18','wea':'晴','wea_img':'qing','tem_day':'28','tem_night':'16','win':'西南風(fēng)','win_speed':'<3級(jí)'}]}網(wǎng)絡(luò)爬蟲(chóng)及數(shù)據(jù)采集應(yīng)用目前只是調(diào)用了一個(gè)城市的數(shù)據(jù),下面程序我們把北京、上海、廣州、深圳、南寧、桂林、天津、重慶、哈爾濱、拉薩10個(gè)城市都采集一遍,并保存為JSON格式的文件,保存為文件名alldata.json,程序如下:#-*-coding:UTF-8-*-importrequests#導(dǎo)入requests模塊importjson#導(dǎo)入json模塊if__name__=='__main__':cities=['北京','上海','廣州','深圳','南寧','桂林','天津','重慶','哈爾濱','拉薩']#定義一個(gè)列表alldata=[]#定義一個(gè)空列表forcityincities:url='/free/week?appid=53487633&appsecret=eQs06GRV&city='+cityresponse=requests.get(url=url).json()alldata.append(response)#增加一個(gè)列表元素filename='alldata.json'#把數(shù)據(jù)寫(xiě)入alldata.json本地文件withopen(filename,'w')asfile_obj:json.dump(alldata,file_obj)上面的程序多增加一些編程知識(shí)。首選把10個(gè)城市定義為一個(gè)list(列表)。編寫(xiě)了一段for循環(huán),遍歷10個(gè)城市,逐一采集相關(guān)城市的天氣數(shù)據(jù)。這里使用了Python的json模塊來(lái)編碼和解碼JSON對(duì)象,函數(shù)如下:函數(shù)描述json.dump將Python對(duì)象編碼成JSON字符串json.load將已編碼的JSON字符串解碼為Python對(duì)象網(wǎng)絡(luò)爬蟲(chóng)及數(shù)據(jù)采集應(yīng)用上面程序就是采用了dump函數(shù),將Python對(duì)象編碼成JSON字符串,我們?cè)賹?xiě)一個(gè)程序,讀取剛才保存的alldata.json文件。如下所示:以上兩個(gè)程序使用到了采用Python語(yǔ)言進(jìn)行文件操作,文件的寫(xiě)入和讀取文件。#-*-coding:UTF-8-*-importjson#導(dǎo)入json模塊if__name__=='__main__':#主程序體filename='alldata.json'#定義一個(gè)文件名withopen(filename)asfile_obj:#打開(kāi)文件data=json.load(file_obj)#把JSON格式數(shù)據(jù)解碼為python對(duì)象print(data)#打印輸出數(shù)據(jù)PART02數(shù)據(jù)處理數(shù)據(jù)處理數(shù)據(jù)處理有兩個(gè)非常強(qiáng)大的python軟件庫(kù),一個(gè)是numpy,一個(gè)是pandas。NumPy是Python語(yǔ)言的一個(gè)擴(kuò)充程序庫(kù)。支持高級(jí)大量的維度數(shù)組與矩陣運(yùn)算,此外也針對(duì)數(shù)組運(yùn)算提供大量的數(shù)學(xué)函數(shù)庫(kù)。Pandas是基于NumPy的一種工具,該工具是為了解決數(shù)據(jù)分析任務(wù)而創(chuàng)建的。Pandas納入了大量庫(kù)和一些標(biāo)準(zhǔn)的數(shù)據(jù)模型,提供了高效地操作大型數(shù)據(jù)集所需的工具。Pandas提供了大量能使我們快速便捷地處理數(shù)據(jù)的函數(shù)和方法。本節(jié)主要介紹numpy和pandas的一些基礎(chǔ)概念和基本用法,詳細(xì)使用需要進(jìn)行進(jìn)一步的學(xué)習(xí)。Numpy數(shù)值計(jì)算庫(kù)機(jī)器學(xué)習(xí)模型:在編寫(xiě)機(jī)器學(xué)習(xí)算法時(shí),需要對(duì)矩陣進(jìn)行各種數(shù)值計(jì)算。例如矩陣乘法、換位、加法等。NumPy提供了一個(gè)非常好的庫(kù),用于簡(jiǎn)單(在編寫(xiě)代碼方面)和快速(在速度方面)計(jì)算。NumPy數(shù)組用于存儲(chǔ)訓(xùn)練數(shù)據(jù)和機(jī)器學(xué)習(xí)模型的參數(shù)。數(shù)學(xué)任務(wù):NumPy對(duì)于執(zhí)行各種數(shù)學(xué)任務(wù)非常有用,如數(shù)值積分、微分、內(nèi)插、外推等。因此,當(dāng)涉及到數(shù)學(xué)任務(wù)時(shí),它形成了一種基于Python的MATLAB的快速替代。圖像處理和計(jì)算機(jī)圖形學(xué):計(jì)算機(jī)中的圖像表示為多維數(shù)字?jǐn)?shù)組。NumPy成為同樣情況下最自然的選擇。實(shí)際上,NumPy提供了一些優(yōu)秀的庫(kù)函數(shù)來(lái)快速處理圖像。例如,鏡像圖像、按特定角度旋轉(zhuǎn)圖像等。NumPy是一個(gè)功能強(qiáng)大的Python庫(kù),主要用于對(duì)多維數(shù)組執(zhí)行計(jì)算。NumPy這個(gè)詞來(lái)源于兩個(gè)單Numerical和Python。NumPy提供了大量的庫(kù)函數(shù)和操作,可以幫助程序員輕松地進(jìn)行數(shù)值計(jì)算。這類(lèi)數(shù)值計(jì)算廣泛用于以下任務(wù):Numpy數(shù)值計(jì)算庫(kù)NumPy的安裝就像安裝其他python庫(kù)一樣簡(jiǎn)單,最快也是最簡(jiǎn)單的方法是在shell上使用以下命令:pipinstallnumpy。NumPy圍繞這些稱(chēng)為數(shù)組展開(kāi),創(chuàng)建數(shù)組的4種不同方法的代碼如下:a=np.array([0,1,2,3,4])b=np.array((0,1,2,3,4))c=np.arange(5)d=np.linspace(0,2*np.pi,5)print(a)#>>>[01234]print(b)#>>>[01234]print(c)#>>>[01234]print(d)#>>>[0.1.570796333.141592654.712388986.28318531]print(a[3])#>>>3最基本的方法是將序列傳遞給NumPy的array()函數(shù);你可以傳遞任何序列(類(lèi)數(shù)組),而不僅僅是常見(jiàn)的列表(list)數(shù)據(jù)類(lèi)型。Numpy數(shù)值計(jì)算庫(kù)請(qǐng)注意,當(dāng)我們打印具有不同長(zhǎng)度數(shù)字的數(shù)組時(shí),它會(huì)自動(dòng)將它們填充出來(lái)。這對(duì)于查看矩陣很有用。對(duì)數(shù)組進(jìn)行索引就像列表或任何其他Python序列一樣。接下來(lái)我們將看看如何使用多維數(shù)組表示矩陣和更多的信息。a=np.array([[11,12,13,14,15],[16,17,18,19,20],[21,22,23,24,25],[26,27,28,29,30],[31,32,33,34,35]])print(a[2,4])#>>>25為了創(chuàng)建一個(gè)2D(二維)數(shù)組,我們傳遞一個(gè)列表的列表(或者是一個(gè)序列的序列)給array()函數(shù)。如果我們想要一個(gè)3D(三維)數(shù)組,我們就要傳遞一個(gè)列表的列表的列表,如果是一個(gè)4D(四維)數(shù)組,那就是列表的列表的列表的列表,以此類(lèi)推。請(qǐng)注意2D(二維)數(shù)組是如何按行和列排列的。要索引2D(二維)數(shù)組,我們只需引用行數(shù)和列數(shù)即可。Pandas數(shù)據(jù)分析庫(kù)Pandas是基于NumPy

的一種工具,該工具是為解決數(shù)據(jù)分析任務(wù)而創(chuàng)建的。Pandas本質(zhì)上是python的一個(gè)數(shù)據(jù)分析包,最初由AQRCapitalManagement于2008年4月開(kāi)發(fā),并于2009年底開(kāi)源出來(lái)。Pandas最初被作為金融數(shù)據(jù)分析工具而開(kāi)發(fā)出來(lái),因此,pandas為時(shí)間序列分析提供了很好的支持。Pandas的名稱(chēng)來(lái)自于面板數(shù)據(jù)(paneldata)和python數(shù)據(jù)分析(dataanalysis)。paneldata是經(jīng)濟(jì)學(xué)中關(guān)于多維數(shù)據(jù)集的一個(gè)術(shù)語(yǔ),在Pandas中也提供了panel的數(shù)據(jù)類(lèi)型。Pandas數(shù)據(jù)分析庫(kù)Pandas的主要數(shù)據(jù)結(jié)構(gòu)是Series(一維數(shù)據(jù))與DataFrame(二維數(shù)據(jù)),這兩種數(shù)據(jù)結(jié)構(gòu)足以處理金融、統(tǒng)計(jì)、社會(huì)科學(xué)、工程等領(lǐng)域里的大多數(shù)典型用例。Series

是一種類(lèi)似于一維數(shù)組的對(duì)象,它由一組數(shù)據(jù)(各種Numpy數(shù)據(jù)類(lèi)型)以及一組與之相關(guān)的數(shù)據(jù)標(biāo)簽(即索引)組成。DataFrame

是一個(gè)表格型的數(shù)據(jù)結(jié)構(gòu),它含有一組有序的列,每列可以是不同的值類(lèi)型(數(shù)值、字符串、布爾型值)。DataFrame既有行索引也有列索引,它可以被看做由Series組成的字典(共同用一個(gè)索引)。參考代碼Pandas數(shù)據(jù)分析庫(kù)DataFrame構(gòu)造方法如下:pandas.DataFrame(data,index,columns,dtype,copy)參數(shù)說(shuō)明:data:一組數(shù)據(jù)(ndarray、series,map,lists,dict等類(lèi)型)。index:索引值,或者可以稱(chēng)為行標(biāo)簽。columns:列標(biāo)簽,默認(rèn)為RangeIndex(0,1,2,…,n)。dtype:數(shù)據(jù)類(lèi)型。copy:拷貝數(shù)據(jù),默認(rèn)為False。PandasDataFrame是一個(gè)二維的數(shù)組結(jié)構(gòu),類(lèi)似二維數(shù)組。本節(jié)主要以處理一個(gè)城市數(shù)據(jù)為例,展示把json數(shù)據(jù)轉(zhuǎn)換成pandas的DataFrame數(shù)據(jù)結(jié)構(gòu)。參考代碼Numpy和Pandas數(shù)據(jù)處理應(yīng)用使用Pandas方法分析以上10各個(gè)城市1-7日的天氣數(shù)據(jù)要求如下:1.每個(gè)城市有多少天不下雨,以及最高溫度25度以上高溫天數(shù)?2.連續(xù)4天以上不下雨,且最高溫度維持在25度以上的城市有哪些?基本思路:1.按照城市進(jìn)行分組統(tǒng)計(jì),將天氣字段字符串中不包含“雨”的記錄展示出來(lái),進(jìn)行計(jì)數(shù);將最高溫度大于等于25度的記錄展示出來(lái),進(jìn)行計(jì)數(shù),最后將統(tǒng)計(jì)結(jié)果輸出。2.按照城市進(jìn)行分組統(tǒng)計(jì),對(duì)分組數(shù)據(jù)進(jìn)行循環(huán)遍歷,判斷條件為天氣字段(字符串中不包含“雨”)且最高溫度大于等于25度,符合上述條件,且日期連續(xù)則計(jì)數(shù)增加1,達(dá)到4天則把對(duì)應(yīng)的城市名稱(chēng)存儲(chǔ)在變量中,最后將統(tǒng)計(jì)結(jié)果輸出。習(xí)題1、以下不屬于Python特點(diǎn)的是()。A.免費(fèi)開(kāi)源 B.可移植性強(qiáng) C.豐富的類(lèi)庫(kù) D.編譯型語(yǔ)言2、以下HTTP請(qǐng)求方法的是()。A.GET

B.POST

C.PUT D.DELETE3、以下哪個(gè)Python庫(kù)適合做數(shù)值計(jì)算()。A.Matplotlib

B.Numpy C.Pandas D.request4、簡(jiǎn)述Numpy和Pandas的區(qū)別。THANKYOU基于Python的數(shù)據(jù)統(tǒng)計(jì)與可視化本章知識(shí)點(diǎn)(1)數(shù)據(jù)的計(jì)量尺度(2)數(shù)據(jù)的度量(3)常用距離公式(4)常用概率分布(5)可視化圖表認(rèn)知(6)Python數(shù)據(jù)可視化(7)使用Matplotlib繪制常用圖表01統(tǒng)計(jì)基礎(chǔ)02數(shù)據(jù)可視化PART01統(tǒng)計(jì)基礎(chǔ)統(tǒng)計(jì)基礎(chǔ)大數(shù)據(jù)運(yùn)營(yíng)需要以數(shù)據(jù)分析為基礎(chǔ),從數(shù)據(jù)中得到相應(yīng)指標(biāo)影響運(yùn)營(yíng)決策,而數(shù)據(jù)分析背后充滿(mǎn)了概率統(tǒng)計(jì)的知識(shí),本節(jié)內(nèi)容主要介紹數(shù)據(jù)分析中常用的統(tǒng)計(jì)學(xué)基礎(chǔ)以及概率分布基礎(chǔ)知識(shí)。數(shù)據(jù)的計(jì)量尺度據(jù)的計(jì)量尺度是指對(duì)計(jì)量對(duì)象量化時(shí)采用的具體標(biāo)準(zhǔn),統(tǒng)計(jì)學(xué)中計(jì)量尺度可分為四類(lèi),分別是定類(lèi)尺度、定序尺度、定距尺度、定比尺度。定類(lèi)尺度和定序尺度屬于定性數(shù)據(jù),定距尺度、定比尺度屬于定量數(shù)據(jù)。數(shù)據(jù)的計(jì)量尺度1.定類(lèi)尺度定類(lèi)尺度,亦稱(chēng)分類(lèi)尺度,是最粗略、計(jì)量層次最低的尺度。定類(lèi)尺度只將測(cè)量對(duì)象分類(lèi),數(shù)據(jù)間不存在大小或高低順序,可以用來(lái)比較相等或不相等,不能進(jìn)行四則算術(shù)運(yùn)算,性別、宗教信仰、民族、職業(yè)類(lèi)型等都屬于定類(lèi)尺度。2.定序尺度定序尺度也稱(chēng)等級(jí)尺度、順序尺度,是指對(duì)測(cè)量對(duì)象的屬性和特征的類(lèi)別進(jìn)行鑒別并能比較類(lèi)別大小的一種測(cè)量方法。定序尺度也是用來(lái)描述對(duì)象類(lèi)別,但是和定類(lèi)尺度不同的是,定序尺度不僅可以確定事務(wù)類(lèi)別,而且可以確定類(lèi)別的優(yōu)劣或順序,即定序尺度不僅可以比較是否相等,而且可以比較大小,年級(jí)、產(chǎn)品等級(jí)、滿(mǎn)意程度、健康狀況等都屬于定序尺度。數(shù)據(jù)的計(jì)量尺度3.定距尺度定距尺度是按照某一數(shù)量標(biāo)志將總體劃分為若干順序排列的部分或組,對(duì)相同數(shù)量或相同數(shù)量范圍的總體單位或其標(biāo)志值進(jìn)行計(jì)量的方法。定距尺度是對(duì)事物類(lèi)別或次序之間間距的測(cè)度,不僅可以區(qū)分不同類(lèi)型,而且可以進(jìn)行排序并且可以準(zhǔn)確指出類(lèi)別之間的差距時(shí)多少。定距尺度通常使用自然或物理單位作為計(jì)量尺度,“0”作為比較標(biāo)準(zhǔn),代表尺度上的一個(gè)點(diǎn),不代表“不存在”,所以定距尺度可以進(jìn)行加、減運(yùn)算,不能進(jìn)行乘除運(yùn)算。定距尺度數(shù)據(jù)的差值有意義,但比例無(wú)意義,比如年份,你可以說(shuō)2000年比1000年多1000年,但是不能說(shuō)2000年是1000年的2倍,年份、攝氏溫度、智商都屬于定距尺度。4.定比尺度定比尺度也稱(chēng)比率尺度,是指一種用于描述對(duì)象計(jì)量特征的計(jì)量尺度。定必尺度是在定距尺度的基礎(chǔ)上,同時(shí)還具有絕對(duì)或自然的起點(diǎn),即存在可以作為比較的共同起點(diǎn)或基數(shù)。在定距尺度中,“0”代表某一數(shù)值,而不是“沒(méi)有”;在定比尺度中有絕對(duì)零點(diǎn),即“0”代表“沒(méi)有”或“不存在”,所以定比尺度不僅可以進(jìn)行加、減運(yùn)算,還可以進(jìn)行乘、除運(yùn)算。例如,攝氏溫度是典型的定距尺度,0攝氏度表示水的結(jié)冰點(diǎn);銷(xiāo)售量是典型的定比尺度,小張5月銷(xiāo)售量為0,即代表5月他沒(méi)有賣(mài)出去東西。定比尺度數(shù)據(jù)差值和比例都有意義,比如A繩子長(zhǎng)5米,B繩子長(zhǎng)10米,你可以說(shuō)B繩子比A繩子長(zhǎng)5米,也可以說(shuō)B繩子長(zhǎng)度是A繩子的2倍。長(zhǎng)度、質(zhì)量、產(chǎn)值等都屬于定比尺度。數(shù)據(jù)的計(jì)量尺度針對(duì)4種尺度的總結(jié)如表所示。分類(lèi)計(jì)量尺度舉例特點(diǎn)定性數(shù)據(jù)定類(lèi)尺度性別、宗教信仰可比較是否相等定序尺度年級(jí)、產(chǎn)品等級(jí)可比較是否相等可比較大小定量數(shù)據(jù)定距尺度年份、攝氏溫度可比較是否相等可比較大小可進(jìn)行加、減操作差值有意義,比例無(wú)意義定比尺度長(zhǎng)度、質(zhì)量、產(chǎn)值可比較是否相等可比較大小可進(jìn)行加、減操作可進(jìn)行乘、除操作差值有意義、比例有意義數(shù)據(jù)的度量數(shù)據(jù)的度量可以分為對(duì)集中趨勢(shì)的度量和對(duì)離散程度的度量,平均數(shù)、中位數(shù)、眾數(shù)都是針對(duì)數(shù)據(jù)集中趨勢(shì)的度量,方差、標(biāo)準(zhǔn)差、協(xié)方差、極差等都是針對(duì)數(shù)據(jù)離散程度的度量。數(shù)據(jù)的度量1.數(shù)據(jù)集中趨勢(shì)的度量在統(tǒng)計(jì)學(xué)中,集中趨勢(shì)是指一組數(shù)據(jù)向某一中心值靠攏的程度,可反應(yīng)一組數(shù)據(jù)的中心點(diǎn)位置。了解數(shù)據(jù)的集中趨勢(shì),有助于發(fā)現(xiàn)事務(wù)的本質(zhì)特征,掌握事務(wù)的發(fā)展變化,在數(shù)據(jù)分析前期階段的數(shù)據(jù)探索中有非常重要的作用。集中趨勢(shì)度量就是尋找數(shù)據(jù)水平的中心值或代表值,對(duì)應(yīng)的衡量指標(biāo)即為平均數(shù)、中位數(shù)、眾數(shù)。1)平均數(shù)平均數(shù),統(tǒng)計(jì)學(xué)中最基本、最常用的衡量數(shù)據(jù)集中趨勢(shì)的一項(xiàng)指標(biāo)。平均數(shù)主要適用于定量數(shù)據(jù),而不適用于定性數(shù)據(jù)。根據(jù)具體數(shù)據(jù)的不同,平均數(shù)有不同的計(jì)算公式,這里主要介紹簡(jiǎn)單算術(shù)平均數(shù)和加權(quán)算術(shù)平均數(shù)。簡(jiǎn)單算術(shù)平均數(shù)又稱(chēng)均值,是指在一組數(shù)據(jù)中所有數(shù)據(jù)之和再除以這組數(shù)據(jù)的個(gè)數(shù),是統(tǒng)計(jì)學(xué)中最常用的平均指標(biāo)。公式如下:參考代碼數(shù)據(jù)的度量加權(quán)算術(shù)平均數(shù)主要用于處理經(jīng)分組整理的數(shù)據(jù),即將各數(shù)值乘以相應(yīng)的權(quán)數(shù),然后加總求和得到總體值,再除以總的單位數(shù)。加權(quán)平均值的大小不僅取決于總體中各單位的數(shù)值大小,而且取決于各數(shù)值出現(xiàn)的次數(shù)(權(quán)數(shù))。公式如下:在Numpy中實(shí)現(xiàn)均值和加權(quán)均值的函數(shù)分別是mean()和average(),接下來(lái)舉一個(gè)例子。數(shù)據(jù)的度量2)中位數(shù)中位數(shù),又稱(chēng)中值,是一組數(shù)據(jù)按照大小順序排列后,居于中間位置的數(shù)。中位數(shù)將全部數(shù)據(jù)等分為兩部分,每部分占比50%,一組數(shù)據(jù)中只有一個(gè)中位數(shù)。中位數(shù)適用于探索定量數(shù)據(jù)的集中趨勢(shì),但是不適用于分類(lèi)數(shù)據(jù)。假設(shè)有一組數(shù)據(jù)(n個(gè))從小到大排序,那么這組數(shù)據(jù)中位數(shù)的計(jì)算有如下兩種情況:(1)當(dāng)n為奇數(shù)時(shí),中位數(shù)等于第(n+1)/2個(gè)數(shù)對(duì)應(yīng)的值(2)當(dāng)n為偶數(shù)時(shí),中位數(shù)位于第n/2和(n/2)+1的兩個(gè)數(shù)的平均值數(shù)據(jù)的度量3)眾數(shù)眾數(shù)是指一組數(shù)據(jù)中出現(xiàn)次數(shù)最多的數(shù)值,代表數(shù)據(jù)的一般水平。眾數(shù)是描述分類(lèi)數(shù)據(jù)集中趨勢(shì)最常用的測(cè)度值,一般只有在數(shù)據(jù)量較大的情況下,眾數(shù)才有意義。眾數(shù)的主要特點(diǎn)是不受極端值影響,在一組數(shù)據(jù)中眾數(shù)不唯一,有可能沒(méi)有眾數(shù)或有多個(gè)眾數(shù),如圖所示。數(shù)據(jù)的度量2.數(shù)據(jù)離散程度的度量與數(shù)據(jù)的集中趨勢(shì)度量對(duì)應(yīng)的是數(shù)據(jù)的離散程度度量,即一組數(shù)據(jù)向某一中心值分散的程度。其中極差是測(cè)量數(shù)據(jù)離散程度的一個(gè)簡(jiǎn)便方法,極差是一組數(shù)據(jù)中最大值與最小值的差距,它能說(shuō)明數(shù)據(jù)的最大變動(dòng)范圍,但由于它是兩個(gè)極端值進(jìn)行計(jì)算得到的結(jié)果,沒(méi)有考慮到中間值的變動(dòng)情況,所以只是一個(gè)較粗糙的計(jì)算離散程度的方法。除了極差以外,平均差、方差、標(biāo)準(zhǔn)差、協(xié)方差都是針對(duì)數(shù)據(jù)離散程度的度量方法。數(shù)據(jù)的度量1)平均差平均差是指各個(gè)變量值同平均數(shù)的離差絕對(duì)值的算術(shù)平均數(shù)。平均差越大,表明各標(biāo)志值與算術(shù)平均數(shù)的差異程度越大,該算術(shù)平均數(shù)的代表性就越小;平均差越小,表明各標(biāo)志值與算術(shù)平均數(shù)的差異程度越小,該算術(shù)平均數(shù)的代表性就越大。平均差的公式如下:平均差受極端值影響較小,所以在對(duì)數(shù)據(jù)的離散程度進(jìn)行度量時(shí)比較有代表性。數(shù)據(jù)的度量2)方差和標(biāo)準(zhǔn)差方差是各個(gè)數(shù)據(jù)分別與其平均數(shù)之差的平方的和的平均數(shù),用表示(也可用var表示),由于方差是數(shù)據(jù)的平方,與檢測(cè)值本身相差太大,人們難以直觀(guān)的衡量,所以常用方差的算術(shù)平方根來(lái)度量變量和均值之間的偏離程度。方差的算術(shù)平方根就是我們常說(shuō)的標(biāo)準(zhǔn)差,用表示,方差和標(biāo)準(zhǔn)差都是常用的對(duì)數(shù)據(jù)離散程度的度量方法。方差的公式如下:標(biāo)準(zhǔn)差的公式如下:其中,x表示樣本的平均數(shù),n表示樣本數(shù)量,表示個(gè)體。平均數(shù)相同的兩組數(shù)據(jù),標(biāo)準(zhǔn)差越大,說(shuō)明數(shù)據(jù)離散程度越大。參考代碼數(shù)據(jù)的度量假設(shè)有A、B兩組數(shù)據(jù),A組數(shù)據(jù)[0,6,8,15,16],B組數(shù)據(jù)[7,8,9,10,11],兩組數(shù)據(jù)的平均值都是9,根據(jù)公式可計(jì)算得到A組數(shù)據(jù)的標(biāo)準(zhǔn)差約為5.9,B組數(shù)據(jù)的標(biāo)準(zhǔn)差約為1.4,說(shuō)明A組數(shù)據(jù)較B組數(shù)據(jù)離散,從數(shù)據(jù)的排列上我們也可看出,A組數(shù)據(jù)間隔較大,B組數(shù)據(jù)較密集。在Numpy中實(shí)現(xiàn)方差和標(biāo)準(zhǔn)差的函數(shù)分別是var()和std()。數(shù)據(jù)的度量3)協(xié)方差協(xié)方差表示兩個(gè)變量的總體誤差,如果兩個(gè)變量的變化趨勢(shì)一致,也就是說(shuō)如果其中一個(gè)大于自身的平均值,另外一個(gè)也大于自身的平均值,那么兩個(gè)變量之間的協(xié)方差就是正值。如果兩個(gè)變量的變化趨勢(shì)相反,即其中一個(gè)大于自身的平均值,另外一個(gè)卻小于自身的平均值,那么兩個(gè)變量之間的協(xié)方差就是負(fù)值。協(xié)方差的公式如下:通俗解釋就是:X變大,同時(shí)Y也變大,說(shuō)明X、Y兩個(gè)變量是同向變化的,這時(shí)協(xié)方差是正的;X變大,同時(shí)Y變小,說(shuō)明X、Y兩個(gè)變量是反向變化的,這時(shí)協(xié)方差是負(fù)的。總體來(lái)說(shuō)就是如果協(xié)方差結(jié)果為正值,說(shuō)明兩者是正相關(guān),如果協(xié)方差結(jié)果為負(fù)值,則說(shuō)明兩者是負(fù)相關(guān)。如果協(xié)方差結(jié)果為0,就是統(tǒng)計(jì)上的“相互獨(dú)立“。數(shù)據(jù)的度量方差是協(xié)方差的一種特殊情況(可以理解為:方差描述一維數(shù)據(jù),協(xié)方差描述二維數(shù)據(jù))。協(xié)方差的運(yùn)算性質(zhì)可總結(jié)如下:Cov(X,Y)=Cov(Y,X)Cov(aX,bY)=abCov(X,Y),(a、b是常數(shù))Cov(X1+X2,Y)=Cov(X1,Y)+Cov(X2,Y)協(xié)方差只能處理二維的問(wèn)題,如果維數(shù)增加,就需要計(jì)算它們兩兩之間的協(xié)方差,這時(shí)就用到了協(xié)方差矩陣,以三維數(shù)據(jù)為例,數(shù)據(jù)集{x,y,z}的協(xié)方差矩陣為:可見(jiàn),協(xié)方差矩陣是一個(gè)對(duì)稱(chēng)的矩陣,而且對(duì)角線(xiàn)是各個(gè)維度上的方差。參考代碼數(shù)據(jù)的度量4)相關(guān)系數(shù)相關(guān)系數(shù)是最早由統(tǒng)計(jì)學(xué)家卡爾·皮爾遜設(shè)計(jì)的統(tǒng)計(jì)指標(biāo),是研究變量之間線(xiàn)性相關(guān)程度的量,一般用字母r表示。由于研究對(duì)象的不同,相關(guān)系數(shù)有多種定義方式,常見(jiàn)的相關(guān)系數(shù)為簡(jiǎn)單相關(guān)系數(shù),簡(jiǎn)單相關(guān)系數(shù)又稱(chēng)皮爾遜相關(guān)系數(shù)或者線(xiàn)性相關(guān)系數(shù),公式如下:從公式中可以看出,X、Y兩個(gè)變量的相關(guān)系數(shù)就是用X、Y的協(xié)方差除以X的標(biāo)準(zhǔn)差和Y的標(biāo)準(zhǔn)差,所以相關(guān)系數(shù)也可以看成是一種剔除了兩個(gè)變量量綱影響后的特殊協(xié)方差。r值的絕對(duì)值介于0~1之間,通常來(lái)說(shuō),r越接近1,表示X、Y兩個(gè)量之間的相關(guān)程度就越強(qiáng),反之,r越接近于0,X、Y兩個(gè)量之間的相關(guān)程度就越弱。數(shù)據(jù)的度量3Numpy中常用的數(shù)據(jù)度量函數(shù)總結(jié)分類(lèi)度量指標(biāo)概念Numpy中對(duì)應(yīng)方法集中趨勢(shì)度量平均值一組數(shù)據(jù)中所有數(shù)據(jù)之和再除以這組數(shù)據(jù)的個(gè)數(shù)mean()加權(quán)均值各數(shù)值乘以相應(yīng)的權(quán)數(shù),然后加總求和得到總體值,再除以總的單位數(shù)average()中位數(shù)一組數(shù)據(jù)按照大小順序排列后,居于中間位置的數(shù)median()離散程度度量方差各個(gè)數(shù)據(jù)分別與其平均數(shù)之差的平方的和的平均數(shù)var()標(biāo)準(zhǔn)差方差的算術(shù)平方根std()協(xié)方差表示兩個(gè)變量的總體誤差,協(xié)方差結(jié)果為正值,說(shuō)明兩者是正相關(guān),協(xié)方差結(jié)果為負(fù)值,則說(shuō)明兩者是負(fù)相關(guān),如果協(xié)方差結(jié)果為0,就是統(tǒng)計(jì)上的“相互獨(dú)立“cov()相關(guān)系數(shù)研究變量之間線(xiàn)性相關(guān)程度的量,可以看成是一種剔除了兩個(gè)變量量綱影響后的特殊協(xié)方差corrcoef()常用距離公式在數(shù)據(jù)分析過(guò)程中,經(jīng)常需要計(jì)算變量之間的距離,本節(jié)主要介紹歐式距離、曼哈頓距離、馬氏距離這3種常見(jiàn)的距離。1.歐式距離歐式距離,也稱(chēng)歐幾里得度量(euclideanmetric),指在m維空間中兩個(gè)點(diǎn)之間的真實(shí)距離,或者向量的自然長(zhǎng)度(即該點(diǎn)到原點(diǎn)的距離)。在二維和三維空間中的歐氏距離就是兩點(diǎn)之間的實(shí)際距離,如圖所示。二維空間歐式距離公式如下:參考代碼常用距離公式1.歐式距離常用距離公式2.曼哈頓距離在介紹曼哈頓距離之前,我們先看下圖圖中紅線(xiàn)代表曼哈頓距離,綠色代表歐氏距離,也就是直線(xiàn)距離,而藍(lán)色和黃色代表等價(jià)的曼哈頓距離。曼哈頓距離(ManhattanDistance),又叫出租車(chē)幾何,是由十九世紀(jì)的赫爾曼·閔可夫斯基所創(chuàng)詞匯,是一種使用在幾何度量空間的幾何學(xué)用語(yǔ),用以標(biāo)明兩個(gè)點(diǎn)在標(biāo)準(zhǔn)坐標(biāo)系上的絕對(duì)軸距總和。二維空間曼哈頓距離公式如下:公式表示坐標(biāo)為(x1,y1)的i點(diǎn)與坐標(biāo)(x2,y2)的j點(diǎn)的曼哈頓距離,對(duì)于一個(gè)具有正南正北、正東正西方向規(guī)則布局的城鎮(zhèn)街道,從一點(diǎn)到達(dá)另一點(diǎn)的距離正是在南北方向上旅行的距離加上在東西方向上旅行的距離,因此曼哈頓距離又稱(chēng)為出租車(chē)距離,曼哈頓距離不是距離不變量,當(dāng)坐標(biāo)軸變動(dòng)時(shí),點(diǎn)間的距離就會(huì)不同。常用距離公式2.曼哈頓距離N維空間曼哈頓距離公式如下:公式表示N維空間點(diǎn)i(x11,x12,…,x1n)與j(x21,x22,…,x2n)的曼哈頓距離。參考代碼常用距離公式3.馬氏距離馬氏距離(MahalanobisDistance)是由印度統(tǒng)計(jì)學(xué)家馬哈拉諾比斯(P.C.Mahalanobis)提出的,表示數(shù)據(jù)的協(xié)方差距離,它是一種有效的計(jì)算兩個(gè)未知樣本集的相似度的方法。馬氏距離是基于樣本分布的一種距離,物理意義就是在規(guī)范化的主成分空間中的歐氏距離。所謂規(guī)范化的主成分空間就是利用主成分分析對(duì)一些數(shù)據(jù)進(jìn)行主成分分解,再對(duì)所有主成分分解軸做歸一化,形成新的坐標(biāo)軸,由這些坐標(biāo)軸形成的空間就是規(guī)范化的主成分空間,如圖所示。馬氏距離的公式如下:

常用距離公式歐氏距離雖然很常用,但是它有明顯的缺點(diǎn),即將樣品的不同屬性之間的差別等同看待,即極易受量綱影響,這一點(diǎn)有時(shí)不能滿(mǎn)足實(shí)際要求。馬氏距離不受量綱的影響,兩點(diǎn)之間的馬氏距離與原始數(shù)據(jù)的測(cè)量單位無(wú)關(guān),馬氏距離可以排除變量之間的相關(guān)性的干擾。歐式距離與馬氏距離的對(duì)比如圖所示。參考代碼常用距離公式scipy.spatial.distance模塊下的pdist函數(shù)可以實(shí)現(xiàn)馬氏距離。舉個(gè)例子來(lái)說(shuō)明,如果我們以厘米為單位來(lái)測(cè)量人的身高,以克(g)為單位測(cè)量人的體重。每個(gè)人被表示為一個(gè)兩維向量,如一個(gè)人身高173cm,體重50000g,表示為(173,50000),根據(jù)身高體重的信息來(lái)判斷體型的相似程度。我們已知小明(160,60000);小王(160,59000);小李(170,60000)。根據(jù)常識(shí)可以知道小明和小王體型相似。但是如果根據(jù)歐幾里得距離來(lái)判斷,小明和小王的距離要遠(yuǎn)遠(yuǎn)大于小明和小李之間的距離,即小明和小李體型相似。這是因?yàn)椴煌卣鞯亩攘繕?biāo)準(zhǔn)之間存在差異而導(dǎo)致判斷出錯(cuò)。以克(g)為單位測(cè)量人的體重,數(shù)據(jù)分布比較分散,即方差大,而以厘米為單位來(lái)測(cè)量人的身高,數(shù)據(jù)分布就相對(duì)集中,方差小。馬氏距離的目的就是把方差歸一化,使得特征之間的關(guān)系更加符合實(shí)際情況。常用概率分布概率分布,是指用于表述隨機(jī)變量取值的概率規(guī)律介紹,簡(jiǎn)單理解就是在統(tǒng)計(jì)圖中表示概率,橫軸是數(shù)據(jù)的值,縱軸是橫軸上對(duì)應(yīng)數(shù)據(jù)值的概率。概率分布可以很好地展現(xiàn)數(shù)據(jù)的內(nèi)在規(guī)律,這里介紹幾種常用的概率分布。1.0-1分布(伯努利分布)0-1分布又稱(chēng)伯努利分布(BernouliDistribution)、兩點(diǎn)分布,是一個(gè)最簡(jiǎn)單的分布,即只先進(jìn)行一次事件試驗(yàn),該事件發(fā)生的概率為p,不發(fā)生的概率為q=1-p,0-1分布也就是n=1情況下的二項(xiàng)分布,任何一個(gè)只有兩種結(jié)果的隨機(jī)現(xiàn)象都服從0-1分布。k=0時(shí),P{X=0}=1-p;k=1時(shí),P{X=1}=p。其中,0<p<1,則稱(chēng)X服從0-1分布。常用概率分布2.二項(xiàng)分布(n重伯努利分布)二項(xiàng)分布(Binomialdistribution)就是重復(fù)n次獨(dú)立的伯努利試驗(yàn)。在每次試驗(yàn)中只有兩種可能的結(jié)果,而且兩種結(jié)果發(fā)生與否互相對(duì)立,并且相互獨(dú)立,與其它各次試驗(yàn)結(jié)果無(wú)關(guān),事件發(fā)生與否的概率在每一次獨(dú)立試驗(yàn)中都保持不變,則這一系列試驗(yàn)總稱(chēng)為n重伯努利實(shí)驗(yàn),當(dāng)試驗(yàn)次數(shù)為1時(shí),二項(xiàng)分布服從0-1分布。二項(xiàng)分布的公式如下:通俗理解,當(dāng)你遇到一個(gè)事情,如果該事情發(fā)生次數(shù)固定,而你感興趣的是成功的次數(shù),那么就可以用二項(xiàng)分布的公式快速計(jì)算出概率來(lái)。其中,X指的是試驗(yàn)的次數(shù),指的是組合,這個(gè)公式表示一個(gè)伯努利分布中得1的概率為p,0的概率為1-p,那么連續(xù)試驗(yàn)n次,出現(xiàn)p的情況恰好是k次的概率。我們舉一個(gè)生活中的例子,假如小明參加英語(yǔ)四級(jí)考試,每次考試通過(guò)的概率是1/3,如果他連續(xù)考試4次,恰好通過(guò)2次的概率是多少?這個(gè)例子中p=1/3,n=4,k=2,代入公式:所以小明連續(xù)考試4次,恰好通過(guò)2次的概率是8/27。參考代碼常用概率分布3.正態(tài)分布正態(tài)分布(NormalDistribution),也稱(chēng)“常態(tài)分布”,又名高斯分布(Gaussiandistribution),最早由德國(guó)的數(shù)學(xué)家和天文學(xué)家Moivre于1733年在求二項(xiàng)分布的漸近公式中得到,但由于德國(guó)數(shù)學(xué)家Gauss率先將其應(yīng)用于天文學(xué)家研究,故正態(tài)分布又叫高斯分布。正態(tài)分布是一個(gè)在數(shù)學(xué)、物理及工程等領(lǐng)域都非常重要的概率分布,在統(tǒng)計(jì)學(xué)的許多方面有著重大的影響力。正態(tài)曲線(xiàn)呈鐘型,兩頭低,中間高,左右對(duì)稱(chēng)因其曲線(xiàn)呈鐘形,因此人們又經(jīng)常稱(chēng)之為鐘形曲線(xiàn)。正態(tài)分布的公式如下:公式表示若隨機(jī)變量X服從一個(gè)數(shù)學(xué)期望為μ(數(shù)學(xué)期望可以理解為均值)、方差為σ2的正態(tài)分布,記為N(μ,σ2)。其概率密度函數(shù)為正態(tài)分布的期望值μ決定了其位置,其標(biāo)準(zhǔn)差σ決定了分布的幅度。當(dāng)μ=0,σ=1時(shí)的正態(tài)分布是標(biāo)準(zhǔn)正態(tài)分布。常用概率分布標(biāo)準(zhǔn)正態(tài)分布公式如下:正態(tài)分布是用來(lái)描述統(tǒng)計(jì)對(duì)象的,如果統(tǒng)計(jì)對(duì)象的分布特性符合正態(tài)分布,那么所有針對(duì)正態(tài)分布的定理和“經(jīng)驗(yàn)值”都能全部套用。正態(tài)分布在自然界的應(yīng)用是很普遍的,它的特點(diǎn)可總結(jié)為:“一般般的很多,極端的很少”,正態(tài)分布曲線(xiàn)如圖所示。

參考代碼常用概率分布例:如對(duì)某一地區(qū)的女性身高做了一個(gè)隨機(jī)抽樣,一共1000人,結(jié)果發(fā)現(xiàn)他們的身高是一個(gè),的正態(tài)分布,則可總結(jié)出:身高150~160cm和身高160~170cm的人分別有341名,共計(jì)682名(μ-σ和μ+σ之間);身高140~150cm和身高170~180cm的人分別有136名,共計(jì)272名;身高130~140cm和身高180~190cm的人分別有21名,共計(jì)42名。這些數(shù)量已經(jīng)涵蓋了統(tǒng)計(jì)總?cè)藬?shù)的99.6%,同樣地,正態(tài)分布我們也可以使用Scipy實(shí)現(xiàn)。常用概率分布4.泊松分布泊松分布(PoissonDistribution),是一種統(tǒng)計(jì)與概率學(xué)里常見(jiàn)到的離散概率分布,由法國(guó)數(shù)學(xué)家西莫恩·德尼·泊松(Siméon-DenisPoisson)在1838年時(shí)發(fā)表。泊松分布公式如下:

常用概率分布泊松分布曲線(xiàn)如圖所示。泊松分布適用的事件需滿(mǎn)足3個(gè)條件:A.事件是小概率事件。B.事件的每次發(fā)生都是獨(dú)立的,不會(huì)互相影響。C.事件的概率是穩(wěn)定的。常用概率分布

參考代碼PART02數(shù)據(jù)可視化可視化圖表認(rèn)知可視化圖表是利用點(diǎn)、線(xiàn)、面、體等要素繪制而成,用于呈現(xiàn)數(shù)據(jù)大小關(guān)系、變動(dòng)情況、分布情況等信息的圖形。數(shù)據(jù)可視化具有形象生動(dòng)、通俗易懂、簡(jiǎn)潔明了等優(yōu)點(diǎn),在大數(shù)據(jù)時(shí)代,數(shù)據(jù)可視化可以和數(shù)據(jù)倉(cāng)庫(kù)、數(shù)據(jù)挖掘等技術(shù)結(jié)合使用實(shí)現(xiàn)商業(yè)智能??梢暬瘓D表認(rèn)知1.數(shù)據(jù)可視化特性真實(shí)性可視化結(jié)果應(yīng)該準(zhǔn)確地反應(yīng)數(shù)據(jù)的本質(zhì)。01直觀(guān)性數(shù)據(jù)呈現(xiàn)要直觀(guān)、形象,有利于人們認(rèn)知數(shù)據(jù)背后所蘊(yùn)藏的現(xiàn)象和規(guī)律。關(guān)聯(lián)性可視化時(shí)要突出地呈現(xiàn)數(shù)據(jù)之間的關(guān)聯(lián)性。藝術(shù)性可視化時(shí)要充分考慮大眾審美,使數(shù)據(jù)呈現(xiàn)更有藝術(shù)性。交互性數(shù)據(jù)呈現(xiàn)時(shí)要方便用戶(hù)控制數(shù)據(jù),實(shí)現(xiàn)用戶(hù)和數(shù)據(jù)的可交互性。02030405可視化圖表認(rèn)知2.可視化圖表分類(lèi)分類(lèi)圖表名字作用類(lèi)別比較型【比較類(lèi)別之間的不同】柱形圖柱形圖適用于二維數(shù)據(jù)集中(x軸、y軸),一個(gè)維度數(shù)據(jù)的比較,利用柱子的高度,反映數(shù)據(jù)的差異;文本維度/時(shí)間維度通常作為x軸,數(shù)值型維度作為y軸餅圖餅圖適用于二維數(shù)據(jù)中,一個(gè)維度數(shù)據(jù)的占比情況(各項(xiàng)占總體的占比),多用于反映某個(gè)部分占整體的比重;數(shù)據(jù)不精細(xì),不適合分類(lèi)較多的情況雷達(dá)圖雷達(dá)圖適用于多維數(shù)據(jù)(四維以上),且每個(gè)維度必須可以排序,常用于多項(xiàng)指標(biāo)的綜合分析,可用于經(jīng)營(yíng)狀況,財(cái)務(wù)健康程度分析;但是雷達(dá)圖數(shù)據(jù)點(diǎn)最多6個(gè),否則無(wú)法辨別數(shù)據(jù)關(guān)系型【查看兩個(gè)或兩個(gè)以上變量之間的關(guān)系】散點(diǎn)圖適用于二維數(shù)據(jù)(2個(gè)連續(xù)字段分別映射到x、y軸),觀(guān)察數(shù)據(jù)的分布情況;也可用于三維數(shù)據(jù),可以用形狀或顏色標(biāo)識(shí)第三維氣泡圖氣泡圖是散點(diǎn)圖的一種變體,通過(guò)每個(gè)點(diǎn)的面積大小,反映第三維;因?yàn)橛脩?hù)不善于判斷面積大小,所以氣泡圖只適用不要求精確辨識(shí)第三維的場(chǎng)合數(shù)據(jù)分布型【查看數(shù)據(jù)的分布情況】直方圖直方圖用于展示數(shù)據(jù)在不同區(qū)間內(nèi)的分布情況;柱形圖矩形長(zhǎng)度代表頻數(shù),寬度代表類(lèi)別,面積無(wú)意義;直方圖矩形長(zhǎng)度代表頻數(shù),寬度代表組距,面積有意義箱線(xiàn)圖箱線(xiàn)圖是一種用于顯示一組數(shù)據(jù)分布情況的統(tǒng)計(jì)圖,用最大值、最小值、中位數(shù)、下四分位數(shù)、上四分位數(shù)共5個(gè)數(shù)字對(duì)分布進(jìn)行概括熱力圖適用于三維數(shù)據(jù)(3個(gè)連續(xù)字段,2個(gè)分布映射到x、y軸,第3個(gè)映射到顏色),以高亮形式展現(xiàn)數(shù)據(jù),常和地圖組合用于表現(xiàn)道路交通狀況時(shí)間序列型【數(shù)據(jù)隨著時(shí)間的變化趨勢(shì)】折線(xiàn)圖適合多個(gè)二維數(shù)據(jù)集的比較,適合數(shù)據(jù)量較大的數(shù)據(jù)地理空間型【代表地理分布】地圖需要用到坐標(biāo)維度,可以是經(jīng)緯度、也可以是地域名稱(chēng),可以與散點(diǎn)圖、熱力圖、曲線(xiàn)圖等結(jié)合使用可視化圖表認(rèn)知3.常用圖表介紹下面將對(duì)柱形圖、餅圖、散點(diǎn)圖、直方圖、箱線(xiàn)圖、熱力圖、折線(xiàn)圖共7種常用圖表進(jìn)行展開(kāi)介紹。1)柱形圖柱形圖(BarChart),又稱(chēng)柱狀圖、長(zhǎng)條圖,是一種以長(zhǎng)方形的長(zhǎng)度為度量的統(tǒng)計(jì)圖表。柱形圖是分析師最常用到的圖表之一,旨在利用柱子的高度,反映數(shù)據(jù)的差異,適用于二維數(shù)據(jù)集中(x軸、y軸),一個(gè)維度數(shù)據(jù)的比較,文本維度/時(shí)間維度通常作為x軸,數(shù)值型維度作為y軸。柱形圖按照呈現(xiàn)方式可分為基礎(chǔ)柱形圖、橫向柱形圖、多柱形圖、堆積柱形圖等,如圖所示。可視化圖表認(rèn)知3.常用圖表介紹下面將對(duì)柱形圖、餅圖、散點(diǎn)圖、直方圖、箱線(xiàn)圖、熱力圖、折線(xiàn)圖共7種常用圖表進(jìn)行展開(kāi)介紹。2)餅圖餅圖(英文學(xué)名為SectorGraph,又名PieGraph)經(jīng)常表示一組數(shù)據(jù)的占比,可以用扇面、圓環(huán)、或者多圓環(huán)嵌套。餅圖適用于二維數(shù)據(jù)中,一個(gè)維度數(shù)據(jù)的占比情況(各項(xiàng)占總體的占比),多用于反映某個(gè)部分占整體的比重,餅圖數(shù)據(jù)不精細(xì),不適合分類(lèi)較多的情況。餅圖按照呈現(xiàn)方式可分為基礎(chǔ)餅圖、分裂餅圖、陰影餅圖、環(huán)形圖等,如圖所示。可視化圖表認(rèn)知3.常用圖表介紹下面將對(duì)柱形圖、餅圖、散點(diǎn)圖、直方圖、箱線(xiàn)圖、熱力圖、折線(xiàn)圖共7種常用圖表進(jìn)行展開(kāi)介紹。3)雷達(dá)圖雷達(dá)圖也叫蛛網(wǎng)圖,常用于企業(yè)經(jīng)營(yíng)狀況,財(cái)務(wù)健康程度的分析。在財(cái)務(wù)分析領(lǐng)域,雷達(dá)圖是重要的工具,可以將本單位的各種財(cái)務(wù)比率和友商或整個(gè)行業(yè)的財(cái)務(wù)比率進(jìn)行橫向?qū)Ρ龋部梢詫?dāng)前的財(cái)務(wù)比率和之前的財(cái)務(wù)比率進(jìn)行縱向?qū)Ρ?。圖為某單位06年和10年主要財(cái)務(wù)支出的對(duì)比圖。可視化圖表認(rèn)知3.常用圖表介紹下面將對(duì)柱形圖、餅圖、散點(diǎn)圖、直方圖、箱線(xiàn)圖、熱力圖、折線(xiàn)圖共7種常用圖表進(jìn)行展開(kāi)介紹。4)散點(diǎn)圖散點(diǎn)圖(ScatterGraph)也叫X-Y圖,它將所有的數(shù)據(jù)以點(diǎn)的形式展現(xiàn)在直角坐標(biāo)系上,以顯示變量之間的相互影響程度,點(diǎn)的位置由變量的數(shù)值決定。散點(diǎn)圖主要用于查看數(shù)據(jù)的分布情況,對(duì)于那些變量之間存在密切關(guān)系,但是這些關(guān)系又不像數(shù)學(xué)公式和物理公式那樣能夠精確表達(dá)的,散點(diǎn)圖是一種很好的圖形工具。散點(diǎn)圖適用于二維數(shù)據(jù),2個(gè)連續(xù)字段分別映射到x、y軸,然后觀(guān)察數(shù)據(jù)的分布情況,也可用于三維數(shù)據(jù),可以用形狀或顏色標(biāo)識(shí)第三維。圖為散點(diǎn)圖示例。從圖中可以看出,散點(diǎn)圖能讓我們發(fā)現(xiàn)變量之間隱藏的關(guān)系,可以為決策作出重要的引導(dǎo)作用??梢暬瘓D表認(rèn)知3.常用圖表介紹下面將對(duì)柱形圖、餅圖、散點(diǎn)圖、直方圖、箱線(xiàn)圖、熱力圖、折線(xiàn)圖共7種常用圖表進(jìn)行展開(kāi)介紹。5)直方圖直方圖(Histogram),又稱(chēng)質(zhì)量分布圖,是一種統(tǒng)計(jì)報(bào)告圖,由一系列高度不等的縱向條紋或線(xiàn)段表示數(shù)據(jù)分布的情況,一般用橫軸表示數(shù)據(jù)類(lèi)型,縱軸表示分布情況,如圖所示。直方圖和柱形圖很類(lèi)似,兩者之間的區(qū)別可總結(jié)如下:直方圖用于展示數(shù)據(jù)在不同區(qū)間內(nèi)的分布情況。柱形圖矩形長(zhǎng)度/高度代表頻數(shù),寬度代表類(lèi)別,面積無(wú)意義。直方圖矩形長(zhǎng)度/高度代表頻數(shù),寬度代表組距,面積有意義??梢暬瘓D表認(rèn)知3.常用圖表介紹下面將對(duì)柱形圖、餅圖、散點(diǎn)圖、直方圖、箱線(xiàn)圖、熱力圖、折線(xiàn)圖共7種常用圖表進(jìn)行展開(kāi)介紹。6)箱線(xiàn)圖箱線(xiàn)圖又稱(chēng)盒須圖、盒式圖和箱型圖,是一種用作顯示一組數(shù)據(jù)分布情況的統(tǒng)計(jì)圖。箱線(xiàn)圖主要用于反映原始數(shù)據(jù)分布的特征,還可以進(jìn)行多組數(shù)據(jù)分布特征的比較。箱線(xiàn)圖用5類(lèi)數(shù)字對(duì)分布進(jìn)行概括,即一組數(shù)據(jù)的最大值、最小值、中位數(shù)、下四分位數(shù)及上四分位數(shù),對(duì)于數(shù)據(jù)集中的異常值,通常會(huì)以單獨(dú)的點(diǎn)的形式繪制,如圖所示。從箱線(xiàn)圖中我們可以觀(guān)察到如下信息:數(shù)據(jù)集的最大值、最小值、中位數(shù)等關(guān)鍵信息。數(shù)據(jù)集中是否存在異常值。數(shù)據(jù)的分布情況(分散還是集中,是否對(duì)稱(chēng)等)??梢暬瘓D表認(rèn)知3.常用圖表介紹下面將對(duì)柱形圖、餅圖、散點(diǎn)圖、直方圖、箱線(xiàn)圖、熱力圖、折線(xiàn)圖共7種常用圖表進(jìn)行展開(kāi)介紹。7)熱力圖熱力圖即以高亮形式展現(xiàn)數(shù)據(jù),最初是由軟件設(shè)計(jì)師CormacKinney于1991年提出并創(chuàng)造的,用來(lái)描述一個(gè)2D顯示實(shí)時(shí)金融市場(chǎng)信息。經(jīng)過(guò)多年的演化,如今的熱力圖更規(guī)范,常用來(lái)表示道路交通狀況和APP用戶(hù)行為分析等。圖為熱力圖示例。Python數(shù)據(jù)可視化可以實(shí)現(xiàn)數(shù)據(jù)可視化的工具很多,包括Tableau、Echars等。這里主要介紹使用Python的Matplotlib庫(kù)實(shí)現(xiàn)數(shù)據(jù)可視化。Matplotlib是Python中最基礎(chǔ)也是最核心的數(shù)據(jù)可視化庫(kù),它不僅提供散點(diǎn)圖、折線(xiàn)圖、餅圖等常用的圖表繪制函數(shù),而且提供豐富的畫(huà)布設(shè)置、顏色設(shè)置等方法。繪制圖表的步驟一般可總結(jié)為設(shè)置畫(huà)布(可不設(shè)置,采用默認(rèn)),繪制圖像(折線(xiàn)圖、散點(diǎn)圖、柱形圖等),設(shè)置標(biāo)題、網(wǎng)格線(xiàn)、圖例等,展示圖像。1.設(shè)置畫(huà)布Matplotlib的pyplot包中的figure方法用于設(shè)置畫(huà)布,語(yǔ)法如下:matplotlib.pyplot.figure(num,figsize,dpi,facecolor,edgecolor,frameon=True)參數(shù)描述num圖像編號(hào)或名稱(chēng)figsize指定畫(huà)布的大小,單位為英寸dpi分辨率,即每英寸包含多少像素,默認(rèn)為80facecolor背景顏色edgecolor邊框顏色frameon是否顯示邊框,默認(rèn)為T(mén)ruePython數(shù)據(jù)可視化2.繪制一個(gè)圖像Matplotlib的pyplot包中封裝了很多畫(huà)圖的函數(shù),包括折線(xiàn)圖、柱形圖、餅圖等。其中plot是最基本的繪圖函數(shù),用于繪制折線(xiàn)圖,接下來(lái)我們就用plot函數(shù)演示如何繪制一個(gè)圖表,代碼如下:importnumpyasnpimportmatplotlib.pyplotasplt#設(shè)置畫(huà)布plt.figure(num='001',figsize=(5,6),dpi=150,edgecolor='b',frameon=False)#構(gòu)建x軸、y軸數(shù)據(jù)x=np.arange(100)y=np.square(x)#使用plot函數(shù)繪制圖表plt.plot(x,y)#展示圖像plt.show()Python數(shù)據(jù)可視化3.設(shè)置標(biāo)題、圖例等標(biāo)題、圖例等其他設(shè)置的相關(guān)方法總結(jié)如表所示。函數(shù)說(shuō)明舉例title()設(shè)置圖表標(biāo)題plt.title("折線(xiàn)圖",{'fontsize':15,'va':'bottom'})xlabel()設(shè)置x軸標(biāo)題plt.xlabel("x軸")ylabel()設(shè)置y軸標(biāo)題plt.ylabel("y軸")xticks()設(shè)置x軸刻度plt.xticks([2,4,6,8])grid()設(shè)置網(wǎng)格線(xiàn)plt.grid(color='#191970',axis='x')legend()設(shè)置圖例plt.legend(('圖例',),loc='upperleft',fontsize=10)text()設(shè)置文本標(biāo)簽plt.text(0,19,'19',ha='center',va='bottom',fontsize=9)參考代碼Python數(shù)據(jù)可視化3.設(shè)置標(biāo)題、圖例等有了這些設(shè)置,我們就可以畫(huà)一個(gè)內(nèi)容相對(duì)豐富的圖像,代碼如下:Python數(shù)據(jù)可視化4.繪制子圖Matplotlib可以繪制子圖,即把很多張圖畫(huà)到一個(gè)顯示界面,在作對(duì)比分析的時(shí)候非常有用。Matplotlib繪制子圖最常用的兩種方式分別是通過(guò)matplotlib.pyplot的subplot方法和通過(guò)matplotlib.pyplot.figure的add_subplot方法,舉例如下:importnumpyasnpimportpandasaspdimportmatplotlib.pyplotasplt#正常顯示中文標(biāo)簽、符號(hào)plt.rcParams['font.sans-serif']=['SimHei']plt.rcParams['axes.unicode_minus']=Falseplt.figure(figsize=(10,6),dpi=100)#使用plt的subplot方法#畫(huà)第1個(gè)圖x1=np.arange(1,100)plt.subplot(221)plt.title('繪制y=x*x圖像')plt.plot(x1,x1*x1)#畫(huà)第2個(gè)圖plt.subplot(222)plt.title('繪制y=1/x的圖像')plt.plot(x1,1/x1)#使用figure的add_subplot方法fig=plt.figure(figsize=(10,6),dpi=100)#畫(huà)第3個(gè)圖x2=np.arange(0,3*np.pi,0.1)ax1=fig.add_subplot(221)plt.title('繪制正弦函數(shù)')ax1.plot(x2,np.sin(x2))#畫(huà)第4個(gè)圖ax2=fig.add_subplot(222)plt.title('繪制余弦函數(shù)')ax2.plot(x2,np.cos(x2))plt.show()使用Matplotlib繪制常用圖表Matplotlib可以繪制多種圖表,折線(xiàn)圖、柱形圖、餅圖、散點(diǎn)圖等常用圖表的實(shí)現(xiàn)方法總結(jié)如表所示。方法說(shuō)明描述plot()折線(xiàn)圖可通過(guò)參數(shù)設(shè)置曲線(xiàn)顏色、線(xiàn)條格式、標(biāo)記樣式等屬性bar()柱形圖可繪制多柱形圖、堆積柱形圖、橫向柱形圖等多種形式柱形圖pie()餅圖可繪制分裂餅圖、陰影餅圖、環(huán)形圖等多種形式餅圖scatter()散點(diǎn)圖可通過(guò)參數(shù)設(shè)置散點(diǎn)的大小、顏色、形狀等屬性hist()直方圖可繪制縱向、橫向直方圖,可設(shè)置箱子個(gè)數(shù)、顏色等屬性boxplot()箱線(xiàn)圖可繪制凹口和非凹口形式的箱線(xiàn)圖imshow()熱力圖可設(shè)置顏色地圖和索引位置使用Matplotlib繪制常用圖表1Matplotlib繪制折線(xiàn)圖plot方法是Matplotlib的pyplot

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論