Python數(shù)據(jù)分析與應(yīng)用(第2版)PPT完整全套教學(xué)課件_第1頁
Python數(shù)據(jù)分析與應(yīng)用(第2版)PPT完整全套教學(xué)課件_第2頁
Python數(shù)據(jù)分析與應(yīng)用(第2版)PPT完整全套教學(xué)課件_第3頁
Python數(shù)據(jù)分析與應(yīng)用(第2版)PPT完整全套教學(xué)課件_第4頁
Python數(shù)據(jù)分析與應(yīng)用(第2版)PPT完整全套教學(xué)課件_第5頁
已閱讀5頁,還剩493頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

Python數(shù)據(jù)分析概述第1章Python數(shù)據(jù)分析概述.pptx第2章NumPy數(shù)值計(jì)算基礎(chǔ).pptx第3章pandas統(tǒng)計(jì)分析基礎(chǔ).pptx第4章使用pandas進(jìn)行數(shù)據(jù)預(yù)處理.pptx第5章matplotlib、seaborn、pyecharts數(shù)據(jù)可視化基礎(chǔ).pptx第6章使用scikit-learn構(gòu)建模型.pptx第7章競賽網(wǎng)站用戶分群.pptx第8章企業(yè)所得稅預(yù)測分析.pptx第9章餐飲企業(yè)客戶流失預(yù)測.pptx第10章基于TipDM大數(shù)據(jù)挖掘建模平臺實(shí)現(xiàn)客戶流失預(yù)測.pptx全套PPT課件1熟悉Python數(shù)據(jù)分析的工具目錄認(rèn)識數(shù)據(jù)分析2安裝Python的Anaconda發(fā)行版3掌握J(rèn)upyterNotebook常用功能4數(shù)據(jù)分析是指用適當(dāng)?shù)姆治龇椒▽κ占瘉淼拇罅繑?shù)據(jù)進(jìn)行分析,提取有用信息和形成結(jié)論,對數(shù)據(jù)加以詳細(xì)研究和概括總結(jié)的過程。隨著計(jì)算機(jī)技術(shù)的全面發(fā)展,企業(yè)生產(chǎn)、收集、存儲和處理數(shù)據(jù)的能力大大提高,數(shù)據(jù)量與日俱增。而在現(xiàn)實(shí)生活中,需要將這些繁多、復(fù)雜的數(shù)據(jù)通過統(tǒng)計(jì)分析進(jìn)行提煉,以此研究出數(shù)據(jù)的發(fā)展規(guī)律,進(jìn)而幫助企業(yè)管理層做出決策。數(shù)據(jù)分析的概念廣義的數(shù)據(jù)分析包括狹義數(shù)據(jù)分析和數(shù)據(jù)挖掘。狹義數(shù)據(jù)分析是指根據(jù)分析目的,采用對比分析、分組分析、交叉分析和回歸分析等分析方法,對收集的數(shù)據(jù)進(jìn)行處理與分析,提取有價值的信息,發(fā)揮數(shù)據(jù)的作用,得到一個特征統(tǒng)計(jì)量結(jié)果的過程。數(shù)據(jù)分析的概念數(shù)據(jù)分析的流程

數(shù)據(jù)分析已經(jīng)逐漸演化為一種解決問題的過程,甚至是一種方法論。雖然每個公司都會根據(jù)自身需求和目標(biāo)創(chuàng)建最適合的數(shù)據(jù)分析流程,但是數(shù)據(jù)分析的核心步驟是一致的。需求分析一詞來源于產(chǎn)品設(shè)計(jì),主要是指從用戶提出的需求出發(fā),挖掘用戶內(nèi)心的真實(shí)意圖,并轉(zhuǎn)化為產(chǎn)品需求的過程。產(chǎn)品設(shè)計(jì)的第一步就是需求分析,也是最關(guān)鍵的一步,因?yàn)樾枨蠓治鰶Q定了產(chǎn)品方向。錯誤的需求分析可能導(dǎo)致產(chǎn)品在實(shí)現(xiàn)過程中走入錯誤方向,甚至對企業(yè)造成損失。數(shù)據(jù)分析中的需求分析是數(shù)據(jù)分析環(huán)節(jié)的第一步,也是非常重要的一步,決定了后續(xù)的分析方向和方法。數(shù)據(jù)分析中的需求分析的主要內(nèi)容是,根據(jù)業(yè)務(wù)、生產(chǎn)和財(cái)務(wù)等部門的需要,結(jié)合現(xiàn)有的數(shù)據(jù)情況,提出數(shù)據(jù)分析需求的整體分析方向、分析內(nèi)容,最終和需求方達(dá)成一致意見。數(shù)據(jù)分析的流程1.需求分析數(shù)據(jù)獲取是數(shù)據(jù)分析工作的基礎(chǔ),是指根據(jù)需求分析的結(jié)果提取、收集數(shù)據(jù)。數(shù)據(jù)獲取主要有兩種方式:網(wǎng)絡(luò)數(shù)據(jù)與本地?cái)?shù)據(jù)。網(wǎng)絡(luò)數(shù)據(jù)是指存儲在互聯(lián)網(wǎng)中的各類視頻、圖片、語音和文字等信息。本地?cái)?shù)據(jù)則是指存儲在本地?cái)?shù)據(jù)庫中的生產(chǎn)、營銷和財(cái)務(wù)等系統(tǒng)的數(shù)據(jù)。本地?cái)?shù)據(jù)按照數(shù)據(jù)時間又可以劃分為兩部分,分別是歷史數(shù)據(jù)與實(shí)時數(shù)據(jù)。歷史數(shù)據(jù)是指系統(tǒng)在運(yùn)行過程中遺存下來的數(shù)據(jù),其數(shù)據(jù)量隨系統(tǒng)運(yùn)行時間的增加而增長;實(shí)時數(shù)據(jù)是指最近一個單位時間周期(月、周、日、小時等)內(nèi)產(chǎn)生的數(shù)據(jù)。在數(shù)據(jù)分析過程中,具體使用哪種數(shù)據(jù)獲取方式,需要依據(jù)需求分析的結(jié)果而定。數(shù)據(jù)分析的流程2.數(shù)據(jù)獲取數(shù)據(jù)預(yù)處理是指對數(shù)據(jù)進(jìn)行數(shù)據(jù)合并、數(shù)據(jù)清洗、數(shù)據(jù)標(biāo)準(zhǔn)化和數(shù)據(jù)變換,并直接用于分析建模的這一過程的總稱。其中,數(shù)據(jù)合并可以將多張互相關(guān)聯(lián)的表格合并為一張;數(shù)據(jù)清洗可以去除重復(fù)、缺失、異常、不一致的數(shù)據(jù);數(shù)據(jù)標(biāo)準(zhǔn)化可以去除特征間的量綱差異;數(shù)據(jù)變換則可以通過離散化、啞變量處理等技術(shù)滿足后期分析與建模的數(shù)據(jù)要求。在數(shù)據(jù)分析的過程中,數(shù)據(jù)預(yù)處理的各個過程互相交叉,并沒有明確的先后順序。數(shù)據(jù)分析的流程3.數(shù)據(jù)預(yù)處理分析與建模是指通過對比分析、分組分析、交叉分析、回歸分析等分析方法,以及聚類模型、分類模型、關(guān)聯(lián)規(guī)則、智能推薦等模型與算法,發(fā)現(xiàn)數(shù)據(jù)中有價值的信息,并得出結(jié)論的過程。在數(shù)據(jù)分析過程中,具體使用哪種數(shù)據(jù)獲取方式,需要依據(jù)需求分析的結(jié)果而定。分析與建模的方法按照目標(biāo)不同可以分為幾大類。如果分析目標(biāo)是描述客戶行為模式的,那么可以采用描述型數(shù)據(jù)分析方法,同時還可以考慮關(guān)聯(lián)規(guī)則、序列規(guī)則和聚類模型等。如果分析目標(biāo)是量化未來一段時間內(nèi)某個事件發(fā)生概率的,那么可以使用兩大預(yù)測分析模型,即分類預(yù)測模型和回歸預(yù)測模型。在常見的分類預(yù)測模型中,目標(biāo)特征通常為二元數(shù)據(jù),如欺詐與否、流失與否、信用好壞等。在回歸預(yù)測模型中,目標(biāo)特征通常為連續(xù)型數(shù)據(jù),常見的有股票價格預(yù)測等。數(shù)據(jù)分析的流程4.分析與建模模型評價是指對于已經(jīng)建立的一個或多個模型,根據(jù)其模型的類別,使用不同的指標(biāo)評價模型性能優(yōu)劣的過程。常用的聚類模型評價指標(biāo)有ARI評價法(蘭德系數(shù))、AMI評價法(互信息)、V-measure評分、FMI評價法和輪廓系數(shù)等。常用的分類模型評價指標(biāo)有準(zhǔn)確率(Accuracy)、精確率(Precision)、召回率(Recall)、F1值(F1Value)、ROC和AUC等。常用的回歸模型評價指標(biāo)有平均絕對誤差、均方誤差、中值絕對誤差和可解釋方差值等。模型優(yōu)化則是指模型性能在經(jīng)過模型評價后已經(jīng)達(dá)到了要求,但在實(shí)際生產(chǎn)環(huán)境應(yīng)用過程中,發(fā)現(xiàn)模型的性能并不理想,繼而對模型進(jìn)行重構(gòu)與優(yōu)化的過程。多數(shù)情況下,模型優(yōu)化和分析與建模的過程基本一致。數(shù)據(jù)分析的流程5.模型評價與優(yōu)化部署是指將數(shù)據(jù)分析結(jié)果與結(jié)論應(yīng)用至實(shí)際生產(chǎn)系統(tǒng)的過程。根據(jù)需求的不同,部署階段可以是一份包含了現(xiàn)狀具體整改措施的數(shù)據(jù)分析報(bào)告,也可以是將模型部署在整個生產(chǎn)系統(tǒng)的解決方案。在多數(shù)項(xiàng)目中,數(shù)據(jù)分析師提供的是一份數(shù)據(jù)分析報(bào)告或一套解決方案,實(shí)際執(zhí)行與部署的是需求方。數(shù)據(jù)分析的流程6.部署企業(yè)使用數(shù)據(jù)分析解決不同的問題,實(shí)際應(yīng)用的數(shù)據(jù)分析場景主要分為客戶分析、營銷分析、社交媒體分析、網(wǎng)絡(luò)安全、設(shè)備管理、交通物流分析和欺詐行為檢測7類??蛻舴治鲋饕歉鶕?jù)客戶的基本數(shù)據(jù)信息進(jìn)行商業(yè)行為分析,首先界定目標(biāo)客戶,根據(jù)客戶的需求、目標(biāo)客戶的性質(zhì)、所處行業(yè)的特征和客戶的經(jīng)濟(jì)狀況等基本信息,使用統(tǒng)計(jì)分析方法和預(yù)測驗(yàn)證法分析目標(biāo)客戶,提高銷售效率。其次了解客戶的采購過程,根據(jù)客戶采購類型、采購性質(zhì)進(jìn)行分類分析,制定不同的營銷策略。根據(jù)已有的客戶特征進(jìn)行客戶特征分析、客戶忠誠度分析、客戶注意力分析、客戶營銷分析和客戶收益分析。通過有效的客戶分析能夠掌握客戶的具體行為特征,將客戶細(xì)分,使得運(yùn)營策略達(dá)到最優(yōu),提升企業(yè)整體效益等。了解數(shù)據(jù)分析應(yīng)用場景1.客戶分析(CustomerAnalytics)營銷分析囊括了產(chǎn)品分析、價格分析、渠道分析、廣告與促銷分析這4類分析。產(chǎn)品分析主要是競爭產(chǎn)品分析,通過對競爭產(chǎn)品的分析制定自身產(chǎn)品策略。價格分析又可以分為成本分析和售價分析。成本分析的目的是降低不必要的成本;售價分析的目的是制定符合市場的價格。渠道分析是指對產(chǎn)品的銷售渠道進(jìn)行分析,確定最優(yōu)的渠道配比。廣告與促銷分析則能夠結(jié)合客戶分析,實(shí)現(xiàn)銷量的提升、利潤的增加。了解數(shù)據(jù)分析應(yīng)用場景2.營銷分析(SalesandMarketingAnalytics)社交媒體分析是以不同的社交媒體渠道生成的內(nèi)容為基礎(chǔ),實(shí)現(xiàn)不同社交媒體的用戶分析、訪問分析和互動分析等。用戶分析主要根據(jù)用戶注冊信息、登錄平臺的時間點(diǎn)和平時發(fā)表的內(nèi)容等用戶數(shù)據(jù),分析用戶個人畫像和行為特征。訪問分析則是通過用戶平時訪問的內(nèi)容分析用戶的興趣愛好,進(jìn)而分析潛在的商業(yè)價值?;臃治龈鶕?jù)互相關(guān)注對象的行為預(yù)測該對象未來的某些行為特征。社交媒體分析還能為情感和輿情監(jiān)督提供豐富的資料。了解數(shù)據(jù)分析應(yīng)用場景3.社交媒體分析(SocialMediaAnalytics)大規(guī)模網(wǎng)絡(luò)安全事件的發(fā)生,例如,2017年5月席卷全球的WannaCry病毒,讓企業(yè)意識到網(wǎng)絡(luò)攻擊發(fā)生時預(yù)先快速識別的重要性。傳統(tǒng)的網(wǎng)絡(luò)安全主要依靠靜態(tài)防御,處理病毒的主要流程是發(fā)現(xiàn)威脅、分析威脅和處理威脅,這種情況下,往往只在威脅發(fā)生以后系統(tǒng)才能做出反應(yīng)。新型的病毒防御系統(tǒng)可使用數(shù)據(jù)分析技術(shù),建立潛在攻擊識別分析模型,監(jiān)測大量網(wǎng)絡(luò)活動數(shù)據(jù)和相應(yīng)的訪問行為,識別可能進(jìn)行入侵的可疑模式,做到未雨綢繆。了解數(shù)據(jù)分析應(yīng)用場景4.網(wǎng)絡(luò)安全(CyberSecurity)設(shè)備管理同樣是企業(yè)關(guān)注的重點(diǎn)。設(shè)備維修一般采用標(biāo)準(zhǔn)修理法、定期修理法和檢查后修理法等方法。其中,標(biāo)準(zhǔn)修理法可能會造成設(shè)備過剩修理,修理費(fèi)用高;雖然檢查后修理法解決了修理費(fèi)用成本問題,但是修理前的準(zhǔn)備工作繁多,設(shè)備的停歇時間過長。目前企業(yè)能夠通過物聯(lián)網(wǎng)技術(shù)收集和分析設(shè)備上的數(shù)據(jù)流,包括連續(xù)用電、零部件溫度、環(huán)境濕度和污染物顆粒等多種潛在特征,建立設(shè)備管理模型,從而預(yù)測設(shè)備故障,合理安排預(yù)防性的維護(hù),以確保設(shè)備正常工作,降低因設(shè)備故障帶來的安全風(fēng)險(xiǎn)。了解數(shù)據(jù)分析應(yīng)用場景5.設(shè)備管理(PlantandFacilityManagement)物流是物品從供應(yīng)地向接收地的實(shí)體流動,是將運(yùn)輸、儲存、裝卸搬運(yùn)、包裝、流通加工、配送和信息處理等功能有機(jī)結(jié)合起來從而實(shí)現(xiàn)用戶要求的過程。用戶可以通過業(yè)務(wù)系統(tǒng)和GPS定位系統(tǒng)獲得數(shù)據(jù),使用數(shù)據(jù)構(gòu)建交通狀況預(yù)測分析模型,有效預(yù)測實(shí)時路況、物流狀況、車流量、客流量和貨物吞吐量,進(jìn)而提前補(bǔ)貨,制定庫存管理策略。了解數(shù)據(jù)分析應(yīng)用場景6.交通物流分析(TransportandLogisticsAnalytics)身份信息泄露及盜用事件逐年增長,隨之而來的是欺詐行為和交易的增多。公安機(jī)關(guān)、各大金融機(jī)構(gòu)、電信部門可利用用戶基本信息、用戶交易信息和用戶通話短信信息等數(shù)據(jù),識別可能發(fā)生的潛在欺詐交易,做到提前預(yù)防、未雨綢繆。以大型金融機(jī)構(gòu)為例,通過分類模型分析方法對非法集資和洗錢的邏輯路徑進(jìn)行分析,找到其行為特征。聚類模型分析方法可以分析相似價格的運(yùn)動模式。例如,對股票進(jìn)行聚類,可能發(fā)現(xiàn)關(guān)聯(lián)交易及內(nèi)幕交易的可疑信息。關(guān)聯(lián)規(guī)則分析方法可以監(jiān)控多個用戶的關(guān)聯(lián)交易行為,為發(fā)現(xiàn)跨賬號協(xié)同的金融詐騙行為提供依據(jù)。了解數(shù)據(jù)分析應(yīng)用場景7.欺詐行為檢測(FraudDetection)1熟悉Python數(shù)據(jù)分析的工具目錄認(rèn)識數(shù)據(jù)分析2安裝Python的Anaconda發(fā)行版3掌握J(rèn)upyterNotebook常用功能4目前主流的數(shù)據(jù)分析語言主要有Python、R、MATLAB這3種。其中,Python具有豐富和強(qiáng)大的庫,同時Python常被稱為膠水語言,能夠?qū)⑹褂闷渌Z言制作的各種模塊(尤其是C/C++)輕松地連接在一起,是一門更易學(xué)、更嚴(yán)謹(jǐn)?shù)某绦蛟O(shè)計(jì)語言。R語言通常用于統(tǒng)計(jì)分析、繪圖。R是屬于GNU系統(tǒng)的一個自由、免費(fèi)、源代碼開放的軟件。MATLAB的作用是進(jìn)行矩陣運(yùn)算、繪制函數(shù)與數(shù)據(jù)、實(shí)現(xiàn)算法、創(chuàng)建用戶界面和連接其他編程語言的程序等,其主要應(yīng)用于工程計(jì)算、控制設(shè)計(jì)、信號處理與通信、圖像處理、信號檢測、金融建模設(shè)計(jì)與分析等領(lǐng)域。了解數(shù)據(jù)分析常用工具Python、R、MATLAB這3種語言均可以進(jìn)行數(shù)據(jù)分析。表11從語言學(xué)習(xí)難易程度、使用場景、第三方支持、流行領(lǐng)域和軟件成本5方面比較了Python、R、MATLAB這3種數(shù)據(jù)分析工具。了解數(shù)據(jù)分析常用工具PythonRMATLAB語言學(xué)習(xí)難易程度接口統(tǒng)一,學(xué)習(xí)曲線平緩接口眾多,學(xué)習(xí)曲線陡峭自由度大,學(xué)習(xí)曲線較為平緩使用場景數(shù)據(jù)分析、機(jī)器學(xué)習(xí)、矩陣運(yùn)算、科學(xué)數(shù)據(jù)可視化、數(shù)字圖像處理等統(tǒng)計(jì)分析、機(jī)器學(xué)習(xí)、科學(xué)數(shù)據(jù)可視化等矩陣運(yùn)算、數(shù)值分析、科學(xué)數(shù)據(jù)可視化、機(jī)器學(xué)習(xí)、符號計(jì)算、數(shù)字圖像處理、數(shù)字信號處理等第三方支持擁有大量的第三方庫,能夠簡便地調(diào)用C、C++、Fortran、Java等其他程序語言擁有大量的包,能夠調(diào)用C、C++、Fortran、Java等其他程序語言擁有大量專業(yè)的工具箱,在新版本中加入了對C、C++、Java的支持流行領(lǐng)域工業(yè)界>學(xué)術(shù)界工業(yè)界≈學(xué)術(shù)界工業(yè)界≤學(xué)術(shù)界軟件成本開源免費(fèi)開源免費(fèi)商業(yè)收費(fèi)語法簡單精練。對于初學(xué)者來說,比起其他編程語言,Python更容易上手。含有大量功能強(qiáng)大的庫。結(jié)合在編程方面的強(qiáng)大實(shí)力,可以只使用Python這一種語言去構(gòu)建以數(shù)據(jù)為中心的應(yīng)用程序。功能強(qiáng)大。從特性觀點(diǎn)來看,Python是一個混合體。豐富的工具集使Python介于傳統(tǒng)的腳本語言和系統(tǒng)語言之間。Python不僅具備所有腳本語言簡單和易用的特點(diǎn),而且提供了編譯語言所具有的高級軟件工程工具。研究、原型構(gòu)建和構(gòu)建生產(chǎn)系統(tǒng)。研究人員和工程技術(shù)人員使用同一種編程工具,會給企業(yè)帶來非常顯著的組織效益,并降低企業(yè)的運(yùn)營成本。Python是一門膠水語言。Python程序能夠以多種方式輕易地與其他語言的組件“粘接”在一起。例如,Python的C語言API可以幫助Python程序靈活地調(diào)用C程序,這意味著用戶可以根據(jù)需要給Python程序添加功能或在其他環(huán)境系統(tǒng)中使用Python。了解Python數(shù)據(jù)分析的優(yōu)勢使用Python進(jìn)行數(shù)據(jù)分析時所用到的類庫主要有NumPy、SciPy、pandas、Matplotlib、seaborn、pyecharts、scikit-learn等。NumPy是NumericalPython的簡稱,是一個Python科學(xué)計(jì)算的基礎(chǔ)包。NumPy主要提供了以下內(nèi)容。快速高效的多維數(shù)組對象ndarray。對數(shù)組執(zhí)行元素級計(jì)算和直接對數(shù)組執(zhí)行數(shù)學(xué)運(yùn)算的函數(shù)。讀/寫硬盤上基于數(shù)組的數(shù)據(jù)集的工具。線性代數(shù)運(yùn)算、傅里葉變換和隨機(jī)數(shù)生成的功能。將C、C++、Fortran代碼集成到Python的工具。了解Python數(shù)據(jù)分析常用類庫1.NumPy除了為Python提供快速的數(shù)組處理能力外,NumPy在數(shù)據(jù)分析方面還有另外一個主要作用,即作為算法之間傳遞數(shù)據(jù)的容器。對于數(shù)值型數(shù)據(jù),使用NumPy數(shù)組存儲和處理數(shù)據(jù)要比使用內(nèi)置的Python數(shù)據(jù)結(jié)構(gòu)高效得多。此外,由低級語言(如C和Fortran)編寫的庫可以直接操作NumPy數(shù)組中數(shù)據(jù),無須進(jìn)行任何數(shù)據(jù)復(fù)制工作。了解Python數(shù)據(jù)分析常用類庫SciPy是基于Python的開源代碼,是一組專門解決科學(xué)計(jì)算中各種標(biāo)準(zhǔn)問題域的模塊的集合,特別是與NumPy、Matplotlib和pandas這些核心包一起使用時。SciPy主要包含了8個模塊,不同的模塊有不同的應(yīng)用,如用于插值、積分、優(yōu)化、處理圖像和特殊函數(shù)等。了解數(shù)據(jù)分析應(yīng)用場景2.SciPy模塊名稱簡介egrate數(shù)值積分和微分方程求解器scipy.linalg擴(kuò)展了由numpy.linalg提供的線性代數(shù)求解和矩陣分解功能scipy.optimize函數(shù)優(yōu)化器(最小化器)以及根查找算法scipy.signal信號處理工具scipy.sparse稀疏矩陣和稀疏線性系統(tǒng)求解器scipy.specialSPECFUN[這是一個實(shí)現(xiàn)了許多常用數(shù)學(xué)函數(shù)(如伽馬函數(shù))的Fortran庫]的包裝器scipy.stats檢驗(yàn)連續(xù)和離散概率分布(如密度函數(shù)、采樣器、連續(xù)分布函數(shù)等)的函數(shù)與方法、各種統(tǒng)計(jì)檢驗(yàn)的函數(shù)與方法,以及各類描述性統(tǒng)計(jì)的函數(shù)與方法scipy.weave利用內(nèi)聯(lián)C++代碼加速數(shù)組計(jì)算的工具pandas是Python的數(shù)據(jù)分析核心庫,最初被作為金融數(shù)據(jù)分析工具而開發(fā)出來。pandas為時間序列分析提供了很好的支持,它提供了一系列能夠快速、便捷地處理結(jié)構(gòu)化數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)和函數(shù)。Python之所以成為強(qiáng)大而高效的數(shù)據(jù)分析環(huán)境與它息息相關(guān)。pandas兼具NumPy高性能的數(shù)組計(jì)算功能以及電子表格和關(guān)系型數(shù)據(jù)庫(如SQL)靈活的數(shù)據(jù)處理功能。它提供了復(fù)雜精細(xì)的索引功能,以便完成重塑、切片與切塊、聚合和選取數(shù)據(jù)子集等操作。pandas將是本書中使用的主要工具。了解數(shù)據(jù)分析應(yīng)用場景3.pandasMatplotlib是較為流行的用于繪制數(shù)據(jù)圖表的Python庫,是Python的2D繪圖庫。Matplotlib最初由約翰·亨特(JohnD.Hunter,JDH)創(chuàng)建,目前由一個龐大的開發(fā)團(tuán)隊(duì)維護(hù)。Matplotlib的操作比較容易,用戶只需用幾行代碼即可生成直方圖、功率譜圖、條形圖、錯誤圖和散點(diǎn)圖等圖形。Matplotlib提供了pylab的模塊,其中包括了NumPy和pyplot中許多常用的函數(shù),方便用戶快速進(jìn)行計(jì)算和繪圖。Matplotlib與IPython的結(jié)合,提供了一種非常好用的交互式數(shù)據(jù)繪圖環(huán)境。繪制的圖表也是交互式的,讀者可以利用繪圖窗口中工具欄中的相應(yīng)工具放大圖表中的某個區(qū)域,或?qū)φ麄€圖表進(jìn)行平移瀏覽。了解數(shù)據(jù)分析應(yīng)用場景4.Matplotlibseaborn是基于Matplotlib的圖形可視化Python庫,它提供了一種高度交互式界面,便于用戶能夠做出各種有吸引力的統(tǒng)計(jì)圖表。seaborn是在Matplotlib的基礎(chǔ)上進(jìn)行了更高級的API封裝,使得作圖更加容易。seaborn不需要了解大量的底層代碼,即可使圖形變得精致。在大多數(shù)情況下,使用seaborn能做出很具有吸引力的圖,而使用Matplotlib能制作具有更多特色的圖。因此,可將seaborn視為Matplotlib的補(bǔ)充,而不是替代物。同時,seaborn能高度兼容NumPy與pandas數(shù)據(jù)結(jié)構(gòu)以及scipy與statsmodels等統(tǒng)計(jì)模式,可以在很大程度上幫助用戶實(shí)現(xiàn)數(shù)據(jù)可視化。了解數(shù)據(jù)分析應(yīng)用場景5.seabornEcharts是一個由百度開源的數(shù)據(jù)可視化工具,憑借著良好的交互性,精巧的圖表設(shè)計(jì),得到了眾多開發(fā)者的認(rèn)可。而Python是一門富有表達(dá)力的語言,很適合用于數(shù)據(jù)處理。pyecharts是Python與Echarts的結(jié)合。pyecharts可以展示動態(tài)交互圖,對于展示數(shù)據(jù)更方便,當(dāng)鼠標(biāo)懸停在圖上時,即可顯示數(shù)值、標(biāo)簽等。pyecharts支持主流Notebook環(huán)境,如JupyterNotebook、JupyterLab等;可輕松集成至Flask、Django等主流Web框架;高度靈活的配置項(xiàng),可輕松搭配出精美的圖表。pyecharts囊括了30多種常見圖表,如Bar(柱形圖/條形圖)、Boxplot(箱形圖)、Funnel(漏斗圖)、Gauge(儀表盤)、Graph(關(guān)系圖)、HeatMap(熱力圖)、Radar(雷達(dá)圖)、Sankey(?;鶊D)、Scatter(散點(diǎn)圖)、WordCloud(詞云圖)等。了解數(shù)據(jù)分析應(yīng)用場景6.pyechartsscikit-learn是一個簡單有效的數(shù)據(jù)挖掘和數(shù)據(jù)分析工具,可以供用戶在各種環(huán)境下重復(fù)使用。scikit-learn建立在NumPy、SciPy和Matplotlib基礎(chǔ)之上,對一些常用的算法方法進(jìn)行了封裝。目前,scikit-learn的基本模塊主要有數(shù)據(jù)預(yù)處理、模型選擇、分類、聚類、數(shù)據(jù)降維和回歸6個。在數(shù)據(jù)量不大的情況下,scikit-learn可以解決大部分問題。對算法不精通的用戶在執(zhí)行建模任務(wù)時,并不需要自行編寫所有的算法,只需要簡單地調(diào)用scikit-learn庫里的模塊即可。了解數(shù)據(jù)分析應(yīng)用場景7.scikit-learn1熟悉Python數(shù)據(jù)分析的工具目錄認(rèn)識數(shù)據(jù)分析2安裝Python的Anaconda發(fā)行版3掌握J(rèn)upyterNotebook常用功能4Python擁有NumPy、SciPy、pandas、Matplotlib、seaborn、pyecharts和scikit-learn等功能齊全、接口統(tǒng)一的庫,能為數(shù)據(jù)分析工作提供極大的便利。庫的管理和版本問題,使得數(shù)據(jù)分析人員并不能夠?qū)W⒂跀?shù)據(jù)分析,而是將大量的時間花費(fèi)在與環(huán)境配置相關(guān)的問題上?;谏鲜鲈?,Anaconda發(fā)行版應(yīng)運(yùn)而生。Anaconda發(fā)行版Python預(yù)裝了150個以上的常用Packages,囊括了數(shù)據(jù)分析常用的NumPy、SciPy、Matplotlib、seaborn、pyecharts、pandas、scikit-learn庫,使得數(shù)據(jù)分析人員能夠更加順暢、專注地使用Python解決數(shù)據(jù)分析相關(guān)問題。推薦數(shù)據(jù)分析初學(xué)者(尤其是Windows系統(tǒng)用戶)安裝此Python發(fā)行版。只需要到Anaconda官方網(wǎng)站下載適合自身的安裝包即可。安裝Python的Anaconda發(fā)行版Python的Anaconda發(fā)行版主要有以下幾個特點(diǎn)。包含了眾多流行的科學(xué)、數(shù)學(xué)、工程和數(shù)據(jù)分析的Python庫。完全開源和免費(fèi)。額外的加速和優(yōu)化是收費(fèi)的,但對于學(xué)術(shù)用途,可以申請免費(fèi)的License。全平臺支持Linux、Windows、Mac;支持Python2.6、2.7、3.4、3.5、3.6和3.8等,可自由切換。了解Python的Anaconda發(fā)行版進(jìn)入Anaconda官方網(wǎng)站,下載Windows系統(tǒng)中的Anaconda安裝包,選擇Python3.8版本。安裝Anaconda的具體步驟如下。單擊已下載好的Anaconda安裝包,并單擊“Next”按鈕進(jìn)入下一步。在Windows系統(tǒng)中安裝Anaconda單擊“IAgree”按鈕,同意上述協(xié)議并進(jìn)入下一步。在Windows系統(tǒng)中安裝Anaconda選擇圖中“AllUsers(requiresadminprivileges)”單選按鈕,單擊“Next”進(jìn)入下一步。在Windows系統(tǒng)中安裝Anaconda單擊“Browse”按鈕,選擇在指定的路徑安裝Anaconda,選擇完成后單擊“Next”按鈕,進(jìn)入下一步。在Windows系統(tǒng)中安裝Anaconda兩個復(fù)選框分別代表了允許將Anaconda添加到系統(tǒng)路徑環(huán)境變量中、Anaconda使用的Python版本為3.8。全部勾選后,單擊“Install”按鈕,等待安裝結(jié)束。在Windows系統(tǒng)中安裝Anaconda單擊“Finish”按鈕,完成Anaconda安裝。在Windows系統(tǒng)中安裝Anaconda打開一個用戶終端Terminal。使用cd命令將當(dāng)前路徑切換至系統(tǒng)下Anaconda安裝包所在的文件路徑。在Linux系統(tǒng)中安裝Anaconda輸入命令“bashAnaconda3-2020.11-Linux-x86_64.sh”,進(jìn)行安裝。在Linux系統(tǒng)中安裝Anaconda按下鍵盤中的“Enter”鍵后,出現(xiàn)軟件協(xié)議相關(guān)內(nèi)容,在閱讀時連續(xù)按“Enter”鍵讀取全文,在協(xié)議末尾會讓讀者確認(rèn)是否同意以上協(xié)議,輸入“yes”,并按下鍵盤中的“Enter”鍵確認(rèn)同意。在Linux系統(tǒng)中安裝Anaconda同意協(xié)議后,默認(rèn)安裝路徑在用戶home目錄下(/home/python/anaconda3),安裝路徑設(shè)置完成后,軟件即可開始安裝。在Linux系統(tǒng)中安裝Anaconda在安裝過程快結(jié)束時,將提示讀者是否將Anaconda的安裝路徑加入到系統(tǒng)當(dāng)前用戶的環(huán)境變量中,輸入“yes”,并按下鍵盤中的“Enter”鍵確認(rèn)同意。在Linux系統(tǒng)中安裝Anaconda軟件安裝完成后使用Linux系統(tǒng)的文本編輯器VIM或gedit查看當(dāng)前用戶的環(huán)境變量。輸入命令“vi/home/python/.bashrc”來查看文檔,出現(xiàn)界面,表示環(huán)境變量配置完成,說明Anaconda已經(jīng)完成安裝。如果未配置完成,那么需要在.bashrc文檔末尾添加Anaconda安裝目錄的環(huán)境變量。在Linux系統(tǒng)中安裝Anaconda1熟悉Python數(shù)據(jù)分析的工具目錄認(rèn)識數(shù)據(jù)分析2安裝Python的Anaconda發(fā)行版3掌握J(rèn)upyterNotebook常用功能4jupyterNotebook(此前被稱為IPythonNotebook)是一個交互式筆記本,支持運(yùn)行40多種編程語言,其本質(zhì)上是一個支持實(shí)時代碼、數(shù)學(xué)方程、可視化和Markdown的Web應(yīng)用程序。對于數(shù)據(jù)分析,JupyterNotebook最大的優(yōu)點(diǎn)是可以重現(xiàn)整個分析過程,并將說明文字、代碼、圖表、公式和結(jié)論都整合在一個文檔中。用戶可以通過電子郵件、Dropbox、GitHub和JupyterNotebookViewer將分析結(jié)果分享給其他人。掌握J(rèn)upyterNotebook常用功能在安裝完成Python、配置好環(huán)境變量并安裝了JupyterNotebook后,在Windows系統(tǒng)下的命令行或在Linux系統(tǒng)下的終端輸入命令“jupyternotebook”,即可啟動JupyterNotebook。掌握J(rèn)upyterNotebook的基本功能1.啟動JupyterNotebook打開JupyterNotebook以后會在系統(tǒng)默認(rèn)的瀏覽器中出現(xiàn)圖116的界面。單擊右上方的“New”下拉按鈕,出現(xiàn)下拉列表。掌握J(rèn)upyterNotebook的基本功能2.新建一個Notebook

在下拉列表中選擇需要創(chuàng)建的Notebook類型。其中,“TextFile”為純文本型,“Folder”為文件夾,“Python3”表示Python運(yùn)行腳本,灰色字體表示不可用項(xiàng)目。選擇“Python3”選項(xiàng),進(jìn)入Python腳本編輯界面。掌握J(rèn)upyterNotebook的基本功能JupyterNotebook中的Notebook文檔由一系列單元(Cell)構(gòu)成,主要有以下兩種形式的單元,在JupyterNotebook中的形式。掌握J(rèn)upyterNotebook的基本功能3.JupyterNotebook的界面及其構(gòu)成代碼單元。代碼單元是讀者編寫代碼的地方,通過按“Shift+Enter”組合鍵運(yùn)行代碼,其結(jié)果顯示在本單元下方。代碼單元左邊有“In[]:”編號,方便使用者查看代碼的執(zhí)行次序。Markdown單元。Markdown單元可對文本進(jìn)行編輯,采用Markdown的語法規(guī)范,可以設(shè)置文本格式,插入鏈接、圖片甚至數(shù)學(xué)公式。同樣,按“Shift+Enter”組合鍵可運(yùn)行Markdown單元,顯示格式化的文本。掌握J(rèn)upyterNotebook的基本功能JupyterNotebook編輯界面類似于Linux的VIM編輯器界面,在Notebook中也有兩種模式,其模式如下。編輯模式。用于編輯文本和代碼。選中單元并按“Enter”鍵進(jìn)入編輯模式,此時單元左側(cè)顯示綠色豎線。命令模式。用于執(zhí)行鍵盤輸入的快捷命令。通過按“Esc”鍵進(jìn)入命令模式,此時單元左側(cè)顯示藍(lán)色豎線。掌握J(rèn)upyterNotebook的基本功能

如果要使用快捷鍵,那么首先按“Esc”鍵進(jìn)入命令模式,然后按相應(yīng)的鍵實(shí)現(xiàn)對文檔的操作。例如,切換到代碼單元按“Y”鍵,切換到Markdown單元按“M”鍵,在本單元的下方增加一單元按“B”鍵,查看所有快捷命令按“H”鍵。掌握J(rèn)upyterNotebook的基本功能在JupyterNotebook中,可以使用Markdown進(jìn)行文本標(biāo)記,以便用戶查看。同時JupyterNotebook還可以將Notebook導(dǎo)出形成HTML、PDF等多種格式。Markdown是一種可以使用普通文本編輯器編寫的標(biāo)記語言,通過簡單的標(biāo)記語法,便可以使普通文本內(nèi)容具有一定的格式。JupyterNotebook的Markdown單元功能較多,下面將從標(biāo)題、列表、字體、表格和數(shù)學(xué)公式編輯5個方面進(jìn)行介紹。掌握J(rèn)upyterNotebook的高級功能1.Markdown標(biāo)題是標(biāo)明文章和作品等內(nèi)容的簡短語句。讀者寫報(bào)告或?qū)懻撐臅r,標(biāo)題是不可或缺的,尤其是論文的章節(jié)等,需要使用不同級別的標(biāo)題。一般使用Markdown中的類Atx形式進(jìn)行標(biāo)題的排版,在首行前加一個“#”字符代表一級標(biāo)題,加兩個“#”字符代表二級標(biāo)題,以此類推。掌握J(rèn)upyterNotebook的高級功能(1)標(biāo)題列表是一種由數(shù)據(jù)項(xiàng)構(gòu)成的有限序列,即按照一定的線性順序排列而成的數(shù)據(jù)項(xiàng)的集合。列表一般分為兩種:一種是無序列表,使用一些圖標(biāo)標(biāo)記,沒有序號,沒有排列順序;另一種是有序列表,使用數(shù)字標(biāo)記,有排列順序。Markdown對于無序列表,可使用星號、加號或減號作為列表標(biāo)記;Markdown對于有序列表,則使用數(shù)字加“.”和“”(一個空格)表示掌握J(rèn)upyterNotebook的高級功能(2)列表文檔中為了凸顯部分內(nèi)容,一般對文字使用加粗或斜體格式,使得該部分內(nèi)容變得更加醒目。對于Markdown排版工具而言,通常使用星號“*”和下劃線“_”作為標(biāo)記字詞的符號。前后有兩個星號或下劃線表示加粗,前后有3個星號或下劃線表示斜體。掌握J(rèn)upyterNotebook的高級功能(3)字體使用Markdown同樣也可以繪制表格。代碼的第一行表示表頭,第二行分隔表頭和主體部分,從第三行開始,每一行代表一個表格行。列與列之間用符號“|”隔開,表格每一行的兩邊也要有符號“|”掌握J(rèn)upyterNotebook的高級功能(4)表格LaTeX是寫科研論文的必備工具,不但能實(shí)現(xiàn)嚴(yán)格的文檔排版,而且能編輯復(fù)雜的數(shù)學(xué)公式。在JupyterNotebook的Markdown單元中也可以使用LaTeX來插入數(shù)學(xué)公式。在文本行中插入數(shù)學(xué)公式,應(yīng)使用兩個“$”符號,如質(zhì)能方程“$E=mc^2$”。如果要插入一個數(shù)學(xué)區(qū)塊,那么使用兩個“$$”符號,如使用“$$z=\frac{x}{y}$$”表示式。掌握J(rèn)upyterNotebook的高級功能(5)數(shù)學(xué)公式編輯Notebook還有一個強(qiáng)大的特性,就是導(dǎo)出功能,可以將Notebook導(dǎo)出為多種格式,如HTML、Markdown、reST、PDF(通過LaTeX)等格式。其中,導(dǎo)出為PDF功能,可以讓讀者不用寫LaTeX即可創(chuàng)建漂亮的PDF文檔。讀者還可以將Notebook作為網(wǎng)頁發(fā)布在自己的網(wǎng)站上。甚至,可以導(dǎo)出為reST格式,作為軟件庫的文檔。導(dǎo)出功能可以依次選擇“File”→“Downloadas”級聯(lián)菜單中的命令實(shí)現(xiàn)。掌握J(rèn)upyterNotebook的高級功能2.導(dǎo)出功能本章主要介紹了數(shù)據(jù)分析的概念、流程、應(yīng)用場景和常用工具,闡述了使用Python進(jìn)行數(shù)據(jù)分析的優(yōu)勢,列舉說明了Python數(shù)據(jù)分析重要類庫的功能。緊接著闡述了Anaconda的特點(diǎn),實(shí)現(xiàn)了在Windows和Linux兩個系統(tǒng)中安裝Anaconda數(shù)據(jù)分析環(huán)境。最后介紹了Python數(shù)據(jù)分析工具JupyterNotebook的常用功能。小結(jié)NumPy數(shù)值計(jì)算基礎(chǔ)1掌握NumPy矩陣與通用函數(shù)目錄掌握NumPy數(shù)組對象ndarray2利用NumPy進(jìn)行統(tǒng)計(jì)分析3NumPy提供了兩種基本的對象。ndarray(N-dimensionalArrayObject):存儲單一數(shù)據(jù)類型的多維數(shù)組。ufunc(UniversalFunctionObject):能夠?qū)?shù)組進(jìn)行處理的函數(shù)。創(chuàng)建數(shù)組對象在創(chuàng)建數(shù)組之前,需要先了解數(shù)組的基本屬性,數(shù)組的屬性及其說明如下表。創(chuàng)建數(shù)組對象1.數(shù)組屬性屬性名稱屬性說明ndim返回int,表示數(shù)組的維數(shù)shape返回tuple,表示數(shù)組形狀的陣列,對于n行m列的矩陣,形狀為(n,m)size返回int,表示數(shù)組的元素總數(shù),等于數(shù)組形狀的乘積dtype返回data-type,表示數(shù)組中元素的數(shù)據(jù)類型itemsize返回int,表示數(shù)組的每個元素的大?。ㄒ宰止?jié)為單位),例如,一個元素類型為float64的數(shù)組的itemsiz屬性值為8(float64占用64個bits,每個字節(jié)長度為8,所以64/8,占用8個字節(jié)),一個元素類型為complex32的數(shù)組的itemsiz屬性值為4,即32/8NumPy提供的array函數(shù)可以創(chuàng)建一維或多維數(shù)組,其基本使用格式如下。array函數(shù)主要參數(shù)及其說明如下表。創(chuàng)建數(shù)組對象2.數(shù)組創(chuàng)建參數(shù)名稱參數(shù)說明object接收array_like,表示所需創(chuàng)建的數(shù)組對象,無默認(rèn)值dtype接收data-type,表示數(shù)組所需的數(shù)據(jù)類型,如果未給定,那么選擇保存對象所需的最小類型,默認(rèn)為Nonendmin接收int,表示指定生成數(shù)組應(yīng)該具有的最小維數(shù),默認(rèn)為0numpy.array(object,dtype=None,*,copy=True,order='K',subok=False,ndmin=0,like=None)除了使用array函數(shù)創(chuàng)建數(shù)組之外,還可以使用arange函數(shù)創(chuàng)建數(shù)組。arange函數(shù)類似于Python自帶的函數(shù)range,通過指定開始值、終值和步長來創(chuàng)建一維數(shù)組,創(chuàng)建的數(shù)組不含終值。arange函數(shù)的基本使用格式如下。arange函數(shù)常用參數(shù)及其說明如下表。創(chuàng)建數(shù)組對象參數(shù)名稱參數(shù)說明start接收int或?qū)崝?shù),表示數(shù)組的開始值,生成的區(qū)間包括該值,默認(rèn)為0stop接收int或?qū)崝?shù),表示數(shù)組的終值,生成的區(qū)間不包括該值,無默認(rèn)值step接收int或?qū)崝?shù),表示在數(shù)組中,值之間的間距,默認(rèn)為1dtype接收數(shù)據(jù)類型,表示輸出數(shù)組的類型,默認(rèn)為Nonenumpy.arange([start,]stop,[step,]dtype=None,*,like=None)linspace函數(shù)通過指定開始值、終值和元素個數(shù)來創(chuàng)建一維數(shù)組,默認(rèn)設(shè)置包括終值,這一點(diǎn)需要和arange函數(shù)區(qū)分。linspace函數(shù)的基本使用格式如下。linspace函數(shù)的常用參數(shù)及其說明如下表。創(chuàng)建數(shù)組對象參數(shù)名稱參數(shù)說明start接收array_like,表示起始值,無默認(rèn)值stop接收array_like,表示結(jié)束值,無默認(rèn)值num接收int,表示生成的樣本數(shù),默認(rèn)為50dtype接收數(shù)據(jù)類型,表示輸出數(shù)組的類型,默認(rèn)為Nonenumpy.linspace(start,stop,num=50,endpoint=True,retstep=False,dtype=None,axis=0)logspace函數(shù)和linspace函數(shù)類似,它創(chuàng)建的是等比數(shù)列。logspace函數(shù)的基本使用格式如下。在logspace函數(shù)的參數(shù)中,除了base參數(shù)和linspace函數(shù)的retstep參數(shù)不同之外,其余均相同。創(chuàng)建數(shù)組對象numpy.logspace(start,stop,num=50,endpoint=True,base=10.0,dtype=None,axis=0)NumPy還提供了其他函數(shù)用于創(chuàng)建特殊數(shù)組,如zeros、eye、diag和ones函數(shù)等。zeros函數(shù):用于創(chuàng)建值全部為0的數(shù)組,即創(chuàng)建的數(shù)組值全部填充為0。eye函數(shù):用于生成主對角線上的元素為1,其他的元素為0的數(shù)組,類似單位矩陣。diag函數(shù):創(chuàng)建類似對角的數(shù)組,即除對角線外的其他元素都為0,對角線上的元素可以是0或其他值。ones函數(shù):用于創(chuàng)建元素全部為1的數(shù)組,即創(chuàng)建的數(shù)組元素全部填充為1。創(chuàng)建數(shù)組對象在實(shí)際的業(yè)務(wù)數(shù)據(jù)處理中,為了更準(zhǔn)確地計(jì)算結(jié)果,需要使用不同精度的數(shù)據(jù)類型。NumPy極大程度地?cái)U(kuò)充了原生Python的數(shù)據(jù)類型。在NumPy中,所有數(shù)組的數(shù)據(jù)類型是同質(zhì)的,即數(shù)組中的所有元素類型必須是一致的。將元素類型保持一致可以更容易確定該數(shù)組所需要的存儲空間。創(chuàng)建數(shù)組對象3.數(shù)組數(shù)據(jù)類型NumPy的基本數(shù)據(jù)類型及其取值范圍如下表。創(chuàng)建數(shù)組對象類型描述bool用一位存儲的布爾類型(值為True或False)inti由所在平臺決定其精度的整數(shù)(一般為int32或int64)int8整數(shù),范圍為128~127int16整數(shù),范圍為32768~32767int32整數(shù),范圍為231~2321int64整數(shù),范圍為263~2631uint8無符號整數(shù),范圍為0~255uint16無符號整數(shù),范圍為0~65535uint32無符號整數(shù),范圍為0~2321NumPy的基本數(shù)據(jù)類型及其取值范圍(續(xù)表)。創(chuàng)建數(shù)組對象類型描述uint64無符號整數(shù),范圍為0~2641float16半精度浮點(diǎn)數(shù)(16位),其中用1位表示正負(fù)號,用5位表示指數(shù),用10位表示尾數(shù)float32單精度浮點(diǎn)數(shù)(32位),其中用1位表示正負(fù)號,用8位表示指數(shù),用23位表示尾數(shù)float64或float雙精度浮點(diǎn)數(shù)(64位),其中用1位表示正負(fù)號,用11位表示指數(shù),用52位表示尾數(shù)complex64復(fù)數(shù),分別用兩個32位浮點(diǎn)數(shù)表示實(shí)部和虛部complex128或complex復(fù)數(shù),分別用兩個64位浮點(diǎn)數(shù)表示實(shí)部和虛部uint32無符號整數(shù),范圍為0~2321手動創(chuàng)建數(shù)組往往很難達(dá)到數(shù)量要求,NumPy提供了強(qiáng)大的生成隨機(jī)數(shù)的功能。然而,真正的隨機(jī)數(shù)很難獲得,在實(shí)際中使用的都是偽隨機(jī)數(shù)。在大部分情況下,偽隨機(jī)數(shù)就能滿足獲取的需求。當(dāng)然,某些特殊情況除外,如進(jìn)行高精度的模擬實(shí)驗(yàn)。對于NumPy,與隨機(jī)數(shù)相關(guān)的函數(shù)都在random模塊中,其中包括了可以生成服從多種概率分布隨機(jī)數(shù)的函數(shù)。生成隨機(jī)數(shù)random函數(shù)是最常見的生成隨機(jī)數(shù)的方法,random函數(shù)的基本使用格式如下。參數(shù)size接收int,表示返回的隨機(jī)浮點(diǎn)數(shù)大小,默認(rèn)為None。生成隨機(jī)數(shù)numpy.random.random(size=None)rand函數(shù)可以生成服從均勻分布的隨機(jī)數(shù),其使用格式如下。參數(shù)d0,d1,...,dn接收int,表示返回?cái)?shù)組的維度必須是非負(fù)數(shù)。如果沒有給出參數(shù),那么返回單個Python浮點(diǎn)數(shù),無默認(rèn)值。randn函數(shù)可以生成服從正態(tài)分布的隨機(jī)數(shù),randn函數(shù)的使用格式和參數(shù)說明與rand函數(shù)相同。生成隨機(jī)數(shù)numpy.random.rand(d0,d1,...,dn)randint函數(shù)可以生成給定上下限范圍的隨機(jī)數(shù),其基本使用格式如下。randint函數(shù)的常用參數(shù)及其說明如下表。生成隨機(jī)數(shù)numpy.random.randint(low,high=None,size=None,dtype=int)參數(shù)名稱參數(shù)說明low接收int或類似數(shù)組的整數(shù)。表示數(shù)組最小值。無默認(rèn)值high接收int或類似數(shù)組的整數(shù)。表示數(shù)組最大值。默認(rèn)Nonesize接收int或整數(shù)元組。表示輸出形狀。默認(rèn)為Nonedtype接收數(shù)據(jù)類型。表示輸出數(shù)組的類型。默認(rèn)為int在random模塊中,其他常用于生成隨機(jī)數(shù)的函數(shù)如下表。生成隨機(jī)數(shù)函數(shù)說明seed確定隨機(jī)數(shù)生成器的種子permutation返回一個序列的隨機(jī)排列或返回一個隨機(jī)排列的范圍Shuffle對一個序列進(jìn)行隨機(jī)排序binomial產(chǎn)生二項(xiàng)分布的隨機(jī)數(shù)normal產(chǎn)生正態(tài)(高斯)分布的隨機(jī)數(shù)beta產(chǎn)生beta分布的隨機(jī)數(shù)chisquare產(chǎn)生卡方分布的隨機(jī)數(shù)gamma產(chǎn)生gamma分布的隨機(jī)數(shù)uniform產(chǎn)生在[0,1]中均勻分布的隨機(jī)數(shù)NumPy通常以提供高效率的數(shù)組著稱,這主要?dú)w功于索引的易用性。1.一維數(shù)組的索引一維數(shù)組的方法很簡單,與Python中的list的索引方法一致。2.多維數(shù)組的索引多維數(shù)組的每一個維度都有一個索引,各個維度的索引之間用逗號隔開。多維數(shù)組同樣也可以使用整數(shù)序列和布爾值索引進(jìn)行訪問。通過索引訪問數(shù)組在NumPy中,常用reshape函數(shù)改變數(shù)組的“形狀”,即改變數(shù)組的維度。reshape函數(shù)的基本使用格式如下。reshape函數(shù)在改變原始數(shù)據(jù)的形狀的同時不改變原始數(shù)據(jù)的值。如果指定的維度和數(shù)組的元素?cái)?shù)目不吻合,那么函數(shù)將拋出異常。變換數(shù)組的形態(tài)numpy.reshape(a,newshape,order='C')reshape函數(shù)的常用參數(shù)及其說明如下表。在NumPy中,可以使用ravel函數(shù)完成數(shù)組展平工作。flatten函數(shù)也可以完成數(shù)組展平工作。與ravel函數(shù)的區(qū)別在于,flatten函數(shù)可以選擇橫向或縱向展平。變換數(shù)組的形態(tài)參數(shù)名稱參數(shù)說明a接收array_like。表示需要變換形態(tài)的數(shù)組。無默認(rèn)值newshape接收int或int型元組。表示變化后的形狀的維度。無默認(rèn)值order接收str。表示將元素放入數(shù)組中的順序,可選C、F、A。默認(rèn)為C除了可以改變數(shù)組“形狀”外,NumPy也可以對數(shù)組進(jìn)行組合。組合主要有橫向組合與縱向組合。使用hstack函數(shù)、vstack函數(shù)和concatenate函數(shù)可完成數(shù)組的組合。橫向組合是將ndarray對象構(gòu)成的元組作為參數(shù),傳給hstack函數(shù)??v向組合同樣是將ndarray對象構(gòu)成的元組作為參數(shù),傳給vstack函數(shù)。concatenate函數(shù)也可以實(shí)現(xiàn)數(shù)組的橫向組合和縱向組合,其中當(dāng)參數(shù)axis=1時,數(shù)組按照橫向組合,當(dāng)參數(shù)axis=0時,數(shù)組按照縱向組合。變換數(shù)組的形態(tài)除了對數(shù)組進(jìn)行橫向和縱向的組合之外,還可以對數(shù)組進(jìn)行分割。NumPy提供了hsplit、vsplit、dsplit和split函數(shù),可以將數(shù)組分割成相同大小的子數(shù)組,也可以指定原數(shù)組中需要分割的位置。hsplit函數(shù):可以對數(shù)組進(jìn)行橫向分割,以ndarray對象構(gòu)成的元組作為參數(shù)。vsplit函數(shù):可以對數(shù)組進(jìn)行縱向分割,以ndarray對象構(gòu)成的元組作為參數(shù)。split函數(shù):同樣可以實(shí)現(xiàn)數(shù)組分割。當(dāng)參數(shù)axis=1時,可以對數(shù)組進(jìn)行橫向分割;當(dāng)參數(shù)axis=0時,可以對數(shù)組進(jìn)行縱向分割。變換數(shù)組形態(tài)1掌握NumPy矩陣與通用函數(shù)目錄掌握NumPy數(shù)組對象ndarray2利用NumPy進(jìn)行統(tǒng)計(jì)分析3在NumPy中,矩陣是ndarray的子類,且數(shù)組和矩陣有著重要的區(qū)別。NumPy提供了兩個基本的對象,分別是N維數(shù)組對象和通用函數(shù)對象,其他對象都是在它們之上構(gòu)建的。矩陣是繼承自NumPy數(shù)組對象的二維數(shù)組對象。與數(shù)學(xué)概念中的矩陣一樣,NumPy中的矩陣也是二維的。使用mat、matrix和bmat函數(shù)可創(chuàng)建矩陣。創(chuàng)建NumPy矩陣當(dāng)使用mat函數(shù)創(chuàng)建矩陣時,如果輸入matrix或ndarray對象,那么不會創(chuàng)建相應(yīng)副本。因此,調(diào)用mat函數(shù)和調(diào)用matrix(data,copy=False)函數(shù)等價。在大多數(shù)情況下,用戶會根據(jù)小的矩陣來創(chuàng)建大的矩陣,即將小矩陣組合成大矩陣。在NumPy中,可以使用bmat分塊矩陣(blockmatrix)函數(shù)實(shí)現(xiàn)。在NumPy中,矩陣計(jì)算是針對整個矩陣中的每個元素進(jìn)行的。與使用for循環(huán)相比,其在運(yùn)算速度上更快。創(chuàng)建NumPy矩陣除了能夠?qū)崿F(xiàn)各類運(yùn)算外,矩陣還有其特有的屬性,如下表。創(chuàng)建NumPy矩陣屬性名稱屬性說明T返回自身的轉(zhuǎn)置H返回自身的共軛轉(zhuǎn)置I返回自身的逆矩陣A返回自身數(shù)據(jù)的二維數(shù)組的一個視圖(沒有做任何的復(fù)制)常用的ufunc函數(shù)運(yùn)算有四則運(yùn)算、比較運(yùn)算和邏輯運(yùn)算等。四則運(yùn)算:ufunc函數(shù)支持全部的四則運(yùn)算,并且保留習(xí)慣的運(yùn)算符,和數(shù)值運(yùn)算的使用方式一樣,但是需要注意的是,操作的對象是數(shù)組。數(shù)組間的四則運(yùn)算表示對每個數(shù)組中的元素分別進(jìn)行四則運(yùn)算,因此進(jìn)行四則運(yùn)算的兩個數(shù)組的形狀必須相同。比較運(yùn)算:在ufunc函數(shù)中也支持完整的比較運(yùn)算:>、<、==、>=、<=、!=。比較運(yùn)算返回的結(jié)果是一個布爾數(shù)組,其每個元素為數(shù)組對應(yīng)元素的比較結(jié)果。邏輯運(yùn)算:在NumPy邏輯運(yùn)算中,numpy.all函數(shù)表示邏輯and,numpy.any函數(shù)表示邏輯or。掌握ufunc函數(shù)1.常用的ufunc函數(shù)運(yùn)算廣播(Broadcasting)是指不同形狀的數(shù)組之間執(zhí)行算術(shù)運(yùn)算的方式。當(dāng)使用ufunc函數(shù)進(jìn)行數(shù)組計(jì)算時,ufunc函數(shù)會對兩個數(shù)組的對應(yīng)元素進(jìn)行計(jì)算。進(jìn)行這種計(jì)算的前提是兩個數(shù)組的shape一致。如果兩個數(shù)組的shape不一致,那么NumPy會實(shí)行廣播機(jī)制。NumPy中的廣播機(jī)制并不容易理解,特別是在進(jìn)行高維數(shù)組計(jì)算的時候。掌握ufunc函數(shù)2.ufunc函數(shù)的廣播機(jī)制為了更好地使用廣播機(jī)制,需要遵循以下4個原則。讓所有的輸入數(shù)組向其中shape最長的數(shù)組看齊,shape中不足的部分通過在前面加1補(bǔ)齊。輸出數(shù)組的shape是輸入數(shù)組shape的各個軸上的最大值。如果輸入數(shù)組的某個軸和輸出數(shù)組的對應(yīng)軸的長度相同或其長度為1,那么這個數(shù)組能夠用于計(jì)算,否則系統(tǒng)將會出錯。當(dāng)輸入數(shù)組的某個軸的長度為1時,沿著此軸運(yùn)算時使用此軸上的第一組值。掌握ufunc函數(shù)1掌握NumPy矩陣與通用函數(shù)目錄掌握NumPy數(shù)組對象ndarray2利用NumPy進(jìn)行統(tǒng)計(jì)分析3NumPy的文件讀/寫主要有二進(jìn)制的文件讀/寫和文件列表形式的數(shù)據(jù)讀/寫兩種形式。NumPy提供了若干函數(shù),可以將結(jié)果保存到二進(jìn)制或文本文件中。除此之外,NumPy還提供了許多從文件讀取數(shù)據(jù)并將其轉(zhuǎn)換為數(shù)組的方法。讀/寫文件save函數(shù)以二進(jìn)制的格式保存數(shù)據(jù),load函數(shù)從二進(jìn)制的文件中讀取數(shù)據(jù),save函數(shù)的語法格式如下。參數(shù)file接收str,表示要保存的文件的名稱,需要指定文件保存的路徑,如果未設(shè)置,那么將會保存到默認(rèn)路徑下面。參數(shù)arr接收array_like,表示需要保存的數(shù)組。save函數(shù)就是將數(shù)組arr保存至名稱為“file”的文件中,其文件的擴(kuò)展名.npy是系統(tǒng)自動添加的。如果將多個數(shù)組保存到一個文件中,那么可以使用savez函數(shù),其文件的擴(kuò)展名為.npz。當(dāng)需要讀取二進(jìn)制文件時,可以使用load函數(shù),用文件名作為參數(shù),存儲時可以省略擴(kuò)展名,但讀取時不能省略擴(kuò)展名。讀/寫文件numpy.save(file,arr,allow_pickle=True,fix_imports=True)在實(shí)際的數(shù)據(jù)分析任務(wù)中,更多地是使用文本格式的數(shù)據(jù),如TXT或CSV格式,因此通常會使用savetxt函數(shù)、loadtxt函數(shù)和genfromtxt函數(shù)執(zhí)行對文本格式數(shù)據(jù)的讀取任務(wù)。savetxt函數(shù)可將數(shù)組寫到以某種分隔符隔開的文本文件中,其基本使用格式如下。參數(shù)fname接收str,表示文件名。參數(shù)X接收array_like,表示數(shù)組數(shù)據(jù)。參數(shù)delimiter接收str,表示數(shù)據(jù)分隔符。讀/寫文件numpy.savetxt(fname,X,fmt='%.18e',delimiter='',newline='\n',header='',footer='',comments='#',encoding=None)loadtxt函數(shù)執(zhí)行的是相反的操作,即將文件加載到一個二維數(shù)組中,其基本使用格式如下。loadtxt函數(shù)的常用參數(shù)主要有兩個,分別是fname和delimiter。參數(shù)fname接收str,表示需要讀取的文件、文件名或生成器。參數(shù)delimiter接收str,表示用于分隔數(shù)值的分隔符。讀/寫文件numpy.loadtxt(fname,dtype=<class'float'>,comments='#',delimiter=None,converters=None,skiprows=0,usecols=None,unpack=False,ndmin=0,encoding='bytes',max_rows=None,*,like=None)genfromtxt函數(shù)和loadtxt函數(shù)相似,只不過genfromtxt函數(shù)面向的是結(jié)構(gòu)化數(shù)組和缺失數(shù)據(jù)。genfromtxt函數(shù)通常使用的參數(shù)有3個。即用于存放數(shù)據(jù)的文件名參數(shù)“fname”。用于分隔的字符參數(shù)“delimiter”。是否含有列標(biāo)題參數(shù)“names”。讀/寫文件在NumPy中,除了可以使用通用函數(shù)對數(shù)組進(jìn)行比較、邏輯等運(yùn)算之外,還可以使用統(tǒng)計(jì)函數(shù)對數(shù)組進(jìn)行排序、去重、求最大和最小值以及求均值等統(tǒng)計(jì)分析。1.排序NumPy的排序方式主要可以概括為直接排序和間接排序兩種。直接排序指對數(shù)值直接進(jìn)行排序;間接排序是指根據(jù)一個或多個鍵對數(shù)據(jù)集進(jìn)行排序。在NumPy中,直接排序通常是使用sort函數(shù),間接排序通常是使用argsort函數(shù)和lexsort函數(shù)。使用函數(shù)進(jìn)行簡單的統(tǒng)計(jì)分析sort函數(shù)是較為常用的排序方法,無返回值。如果目標(biāo)函數(shù)是一個視圖,那么原始數(shù)據(jù)將會被修改。當(dāng)使用sort函數(shù)排序時,用戶可以指定一個axis參數(shù),使得sort函數(shù)可以沿著指定軸對數(shù)據(jù)集進(jìn)行排序。使用argsort函數(shù)和lexsort函數(shù),可以在給定一個或多個鍵時,得到一個由整數(shù)構(gòu)成的索引數(shù)組,索引值表示數(shù)據(jù)在新的序列中的位置。lexsort函數(shù)可以一次性對滿足多個鍵的數(shù)組執(zhí)行間接排序。使用函數(shù)進(jìn)行簡單的統(tǒng)計(jì)分析在統(tǒng)計(jì)分析的工作中,難免會出現(xiàn)“臟”數(shù)據(jù)的情況。重復(fù)數(shù)據(jù)就是“臟”數(shù)據(jù)的情況之一。如果一個一個地手動刪除,那么將會耗時費(fèi)力且效率低。在NumPy中,可以通過unique函數(shù)查找出數(shù)組中的唯一值并返回已排序的結(jié)果。另一種情況,在統(tǒng)計(jì)分析中也經(jīng)常遇到,即需要將一個數(shù)據(jù)重復(fù)若干次。在NumPy中主要使用tile函數(shù)和repeat函數(shù)實(shí)現(xiàn)數(shù)據(jù)重復(fù)。使用函數(shù)進(jìn)行簡單的統(tǒng)計(jì)分析2.去重與重復(fù)數(shù)據(jù)tile函數(shù)的基本使用格式如下。tile函數(shù)主要有兩個參數(shù)。參數(shù)A接收array_like,表示輸入的數(shù)組。參數(shù)reps接收array_like,表示指定數(shù)組的重復(fù)次數(shù)。使用函數(shù)進(jìn)行簡單的統(tǒng)計(jì)分析numpy.tile(A,reps)repeat函數(shù)的基本使用格式如下。repeat函數(shù)主要有3個參數(shù)。參數(shù)a接收array_like,表示輸入的數(shù)組。參數(shù)repeats接收int或整數(shù)的數(shù)組,表示每個元素的重復(fù)次數(shù)。參數(shù)axis接收int,表示用于指定沿著哪個軸進(jìn)行重復(fù)。tile函數(shù)和repeat函數(shù)的主要區(qū)別在于,tile函數(shù)是對數(shù)組進(jìn)行重復(fù)操作,repeat函數(shù)是對數(shù)組中的每個元素進(jìn)行重復(fù)操作。使用函數(shù)進(jìn)行簡單的統(tǒng)計(jì)分析numpy.repeat(a,repeats,axis=None)在NumPy中,有許多可以用于統(tǒng)計(jì)分析的函數(shù)。常見的統(tǒng)計(jì)函數(shù)有sum、mean、std、var、min和max等。幾乎所有的統(tǒng)計(jì)函數(shù)在針對二維數(shù)組計(jì)算的時候都需要注意軸的概念。當(dāng)axis參數(shù)為0時,表示沿著縱軸進(jìn)行計(jì)算;當(dāng)axis為1時,表示沿著橫軸進(jìn)行計(jì)算。默認(rèn)情況下,函數(shù)并不按照任一軸向計(jì)算,而是計(jì)算一個總值。聚合計(jì)算將直接顯示計(jì)算的最終結(jié)果,在NumPy中,cumsum函數(shù)和cumprod函數(shù)采用不聚合計(jì)算,產(chǎn)生一個由中間結(jié)果組成的數(shù)組。使用函數(shù)進(jìn)行簡單的統(tǒng)計(jì)分析3.常用的統(tǒng)計(jì)函數(shù)本章主要介紹了NumPy數(shù)組對象ndarray的創(chuàng)建、生成隨機(jī)數(shù)的方法、數(shù)組的索引和數(shù)組形態(tài)的變換方法。同時還介紹了矩陣的創(chuàng)建方法、使用通用函數(shù)對數(shù)組進(jìn)行計(jì)算。最后介紹了利用NumPy讀寫文件以及進(jìn)行統(tǒng)計(jì)分析的常用函數(shù),為后面真正進(jìn)入數(shù)據(jù)分析課程內(nèi)容的學(xué)習(xí)和學(xué)習(xí)其他數(shù)據(jù)分析庫(如pandas)打下堅(jiān)實(shí)的基礎(chǔ)。小結(jié)pandas統(tǒng)計(jì)分析基礎(chǔ)1掌握DataFrame的常用操作目錄讀/寫不同數(shù)據(jù)源的數(shù)據(jù)2轉(zhuǎn)換與處理時間序列數(shù)據(jù)3使用分組聚合進(jìn)行組內(nèi)計(jì)算4創(chuàng)建透視表與交叉表5pandas是Python的核心數(shù)據(jù)分析支持庫,提供了快速、靈活、明確的數(shù)據(jù)結(jié)構(gòu),旨在簡單、直觀地處理關(guān)系型、標(biāo)記型數(shù)據(jù)。pandas建造在NumPy之上,所以使得pandas在以NumPy為中心的應(yīng)用中得以容易的使用,而pandas庫在與其它第三方科學(xué)計(jì)算支持庫結(jié)合時也能夠完美的進(jìn)行集成。在Python中,pandas庫的功能十分強(qiáng)大,它可提供高性能的矩陣運(yùn)算??捎糜跀?shù)據(jù)挖掘和數(shù)據(jù)分析,同時也提供數(shù)據(jù)清洗功能;支持類似SQL的數(shù)據(jù)增、刪、查、改,并且?guī)в胸S富的數(shù)據(jù)處理函數(shù);支持時間序列分析功能;支持靈活處理缺失數(shù)據(jù)等。認(rèn)識pandas庫pandas有兩個強(qiáng)大的利器。Series(一維數(shù)據(jù))是一種類似于一維數(shù)組的對象,是由一組數(shù)據(jù)(各種NumPy數(shù)據(jù)類型)以及一組與之相關(guān)的數(shù)據(jù)標(biāo)簽(即索引)組成,而僅由一組數(shù)據(jù)也可產(chǎn)生簡單的Series對象。DataFrame是pandas中的一個表格型的數(shù)據(jù)結(jié)構(gòu),包含有一組有序的列,每列可以是不同的值類型(數(shù)值、字符串、布爾型等),DataFrame既有行索引也有列索引,可以被看做是由Series組成的字典。認(rèn)識pandas庫文本文件是一種由若干行字符構(gòu)成的計(jì)算機(jī)文件,它是一種典型的順序文件。CSV是一種用分隔符分隔的文件格式,因?yàn)槠浞指舴灰欢ㄊ嵌禾?,所以又被稱為字符分隔文件。文本文件以純文本形式存儲表格數(shù)據(jù)(數(shù)字和文本),它是一種通用、相對簡單的文件格式,最廣泛的應(yīng)用是在程序之間轉(zhuǎn)移表格數(shù)據(jù),而這些程序本身是在不兼容的格式上進(jìn)行操作的(往往是私有的、無規(guī)范的格式)。大量程序都支持CSV或其變體,所以CSV或其變體可以作為大多數(shù)程序的輸入和輸出格式。讀/寫文本文件CSV文件根據(jù)其定義也是一種文本文件。在數(shù)據(jù)讀取過程中可以使用文本文件的讀取函數(shù)對CSV文件進(jìn)行讀取。同時,如果文本文件是字符分隔文件,那么可以使用讀取CSV文件的函數(shù)進(jìn)行讀取。pandas提供了read_table()函數(shù)讀取文本文件,提供了read_csv()函數(shù)讀取CSV文件。讀/寫文本文件1.文本文件讀取read_table()函數(shù)和read_csv()函數(shù)具有許多參數(shù),如果有多個<expression>,那么表達(dá)式之間用逗號隔開,基本使用格式如下。讀/寫文本文件pandas.read_table(filepath_or_buffer,sep=<no_default>,header='infer',names=<no_default>,index_col=None,dtype=None,engine=None,nrows=None,skiprows=None)pandas.read_csv(filepath_or_buffer,sep=<no_default>,header='infer',names=<no_default>,index_col=None,dtype=None,engine=None,nrows=None,skiprows=None)read_table()函數(shù)和read_csv()函數(shù)的多數(shù)參數(shù)相同,它們的常用參數(shù)及其說明如下表。讀/寫文本文件參數(shù)名稱參數(shù)說明filepath接收str。表示文件路徑。無默認(rèn)值sep接收str。表示分隔符。read_csv函數(shù)默認(rèn)為“,”,read_table函數(shù)默認(rèn)為制表符“Tab”header接收int或列表形式的int。表示將某行數(shù)據(jù)作為列名。默認(rèn)為infernames接收array。表示列名。無默認(rèn)值index_col接收int、sequence或False。表示索引列的位置,取值為sequence則代表多重索引。默認(rèn)為Noneread_table()函數(shù)和read_csv()函數(shù)的多數(shù)參數(shù)相同,它們的常用參數(shù)及其說明如下表。讀/寫文本文件參數(shù)名稱參數(shù)說明dtype接收字典形式的列名或typename。表示寫入的數(shù)據(jù)類型(列名為key,數(shù)據(jù)格式為values)。默認(rèn)為Noneengine接收c語言或python語言。表示要使用的數(shù)據(jù)解析引擎。默認(rèn)為Nonenrows接收int。要讀取的文件行數(shù)。默認(rèn)為Noneskiprows接收list或int或callable。表示讀取數(shù)據(jù)時跳過開頭的行數(shù)。默認(rèn)為None某公司收集了音樂行業(yè)的收入信息,并存放至工作表中,其中數(shù)據(jù)特征主要包括format(銷售形式)、metric(銷售單位)、date(銷售時間)、number_of_records(銷售數(shù)量)、value_actual(銷售價格),部分信息如下表。讀/寫文本文件formatmetricdatenumberofrecordsvalue_actualCDUnits2020/7/3122:011CDUnits2020/7/236:121CDUnits2020/7/139:301CDUnits2020/6/3014:261CDUnits2020/6/2320:211CDUnits2020/6/2013:411CDUnits2020/5/247:031根據(jù)音樂行業(yè)收入信息表,分別使用read_table()和read_csv()這兩個函數(shù)讀取數(shù)據(jù)。read_table()函數(shù)和read_csv()函數(shù)應(yīng)注意。sep參數(shù)是指定文本的分隔符,如果分隔符指定錯誤,那么在讀取數(shù)據(jù)的時候,每一行數(shù)據(jù)將連成一片。header參數(shù)用于指定列名,如果header參數(shù)值是None,那么將會添加一個默認(rèn)的列名。encoding代表文件的編碼格式,常用的編碼格式有UTF-8、UTF-16、GBK、GB2312、GB18030等。如果編碼指定錯誤,那么數(shù)據(jù)將無法讀取,IPython解釋器會報(bào)解析錯誤。讀/寫文本文件文本文件的存儲和讀取類似,對于結(jié)構(gòu)化數(shù)據(jù),可以通過pandas庫中的to_csv()方法實(shí)現(xiàn)以CSV文件格式存儲。to_csv()函數(shù)同樣具有許多參數(shù),如果有多個<expression>,那么表達(dá)式之間用逗號隔開,基本使用格式如下。讀/寫文本文件2.文本文件存儲DataFrame.to_csv(path_or_buf=None,sep=',',na_rep='',columns=None,header=True,index=True,index_label=None,mode='w',encoding=None)to_csv()方法的常用參數(shù)及其說明如下表。讀/寫文本文件參數(shù)名稱參數(shù)說明path_or_buf接收str。表示文件路徑。默認(rèn)為Nonesep接收str。表示分隔符。默認(rèn)為“,”na_rep接收str。表示缺失值。默認(rèn)為“”columns接收list。表示寫出的列名。默認(rèn)為Noneheader接收bool或列表形式的str。表示是否將列名寫出。默認(rèn)為Trueindex接收bool。表示是否將行名(索引)寫出。默認(rèn)為Trueindex_label接收sequence或str或false。表示索引名。默認(rèn)為Nonemode接收特定str。表示數(shù)據(jù)寫入模式。默認(rèn)為wencoding接收特定str。表示存儲文件的編碼格式。默認(rèn)為NoneExcel是微軟公司的辦公軟件MicrosoftOffice的組件之一,它可以對數(shù)據(jù)進(jìn)行處理、統(tǒng)計(jì)分析等操作,廣泛地應(yīng)用于管理、財(cái)經(jīng)和金融等眾多領(lǐng)域,其文件保存依照程序版本的不同分為以下兩種。MicrosoftOfficeExcel2007之前的版本(不包括2007)默認(rèn)保存的文件擴(kuò)展名為.xls。MicrosoftOfficeExcel2007之后的版本默認(rèn)保存的文件擴(kuò)展名為.xlsx。讀/寫Excel文件pandas庫提供了read_excel()函數(shù)讀取“xls”和“xlsx”兩種Excel文件,基本使用格式如下。讀/寫Excel文件1.Excel文件讀取pandas.read_excel(io,sheet_name=0,header=0,names=None,index_col

溫馨提示

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

評論

0/150

提交評論