![Python數據分析與應用(第2版)PPT完整全套教學課件_第1頁](http://file4.renrendoc.com/view/bf3199ac01a7b508395ff31a836cf361/bf3199ac01a7b508395ff31a836cf3611.gif)
![Python數據分析與應用(第2版)PPT完整全套教學課件_第2頁](http://file4.renrendoc.com/view/bf3199ac01a7b508395ff31a836cf361/bf3199ac01a7b508395ff31a836cf3612.gif)
![Python數據分析與應用(第2版)PPT完整全套教學課件_第3頁](http://file4.renrendoc.com/view/bf3199ac01a7b508395ff31a836cf361/bf3199ac01a7b508395ff31a836cf3613.gif)
![Python數據分析與應用(第2版)PPT完整全套教學課件_第4頁](http://file4.renrendoc.com/view/bf3199ac01a7b508395ff31a836cf361/bf3199ac01a7b508395ff31a836cf3614.gif)
![Python數據分析與應用(第2版)PPT完整全套教學課件_第5頁](http://file4.renrendoc.com/view/bf3199ac01a7b508395ff31a836cf361/bf3199ac01a7b508395ff31a836cf3615.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Python數據分析概述第1章Python數據分析概述.pptx第2章NumPy數值計算基礎.pptx第3章pandas統(tǒng)計分析基礎.pptx第4章使用pandas進行數據預處理.pptx第5章matplotlib、seaborn、pyecharts數據可視化基礎.pptx第6章使用scikit-learn構建模型.pptx第7章競賽網站用戶分群.pptx第8章企業(yè)所得稅預測分析.pptx第9章餐飲企業(yè)客戶流失預測.pptx第10章基于TipDM大數據挖掘建模平臺實現(xiàn)客戶流失預測.pptx全套PPT課件1熟悉Python數據分析的工具目錄認識數據分析2安裝Python的Anaconda發(fā)行版3掌握JupyterNotebook常用功能4數據分析是指用適當的分析方法對收集來的大量數據進行分析,提取有用信息和形成結論,對數據加以詳細研究和概括總結的過程。隨著計算機技術的全面發(fā)展,企業(yè)生產、收集、存儲和處理數據的能力大大提高,數據量與日俱增。而在現(xiàn)實生活中,需要將這些繁多、復雜的數據通過統(tǒng)計分析進行提煉,以此研究出數據的發(fā)展規(guī)律,進而幫助企業(yè)管理層做出決策。數據分析的概念廣義的數據分析包括狹義數據分析和數據挖掘。狹義數據分析是指根據分析目的,采用對比分析、分組分析、交叉分析和回歸分析等分析方法,對收集的數據進行處理與分析,提取有價值的信息,發(fā)揮數據的作用,得到一個特征統(tǒng)計量結果的過程。數據分析的概念數據分析的流程
數據分析已經逐漸演化為一種解決問題的過程,甚至是一種方法論。雖然每個公司都會根據自身需求和目標創(chuàng)建最適合的數據分析流程,但是數據分析的核心步驟是一致的。需求分析一詞來源于產品設計,主要是指從用戶提出的需求出發(fā),挖掘用戶內心的真實意圖,并轉化為產品需求的過程。產品設計的第一步就是需求分析,也是最關鍵的一步,因為需求分析決定了產品方向。錯誤的需求分析可能導致產品在實現(xiàn)過程中走入錯誤方向,甚至對企業(yè)造成損失。數據分析中的需求分析是數據分析環(huán)節(jié)的第一步,也是非常重要的一步,決定了后續(xù)的分析方向和方法。數據分析中的需求分析的主要內容是,根據業(yè)務、生產和財務等部門的需要,結合現(xiàn)有的數據情況,提出數據分析需求的整體分析方向、分析內容,最終和需求方達成一致意見。數據分析的流程1.需求分析數據獲取是數據分析工作的基礎,是指根據需求分析的結果提取、收集數據。數據獲取主要有兩種方式:網絡數據與本地數據。網絡數據是指存儲在互聯(lián)網中的各類視頻、圖片、語音和文字等信息。本地數據則是指存儲在本地數據庫中的生產、營銷和財務等系統(tǒng)的數據。本地數據按照數據時間又可以劃分為兩部分,分別是歷史數據與實時數據。歷史數據是指系統(tǒng)在運行過程中遺存下來的數據,其數據量隨系統(tǒng)運行時間的增加而增長;實時數據是指最近一個單位時間周期(月、周、日、小時等)內產生的數據。在數據分析過程中,具體使用哪種數據獲取方式,需要依據需求分析的結果而定。數據分析的流程2.數據獲取數據預處理是指對數據進行數據合并、數據清洗、數據標準化和數據變換,并直接用于分析建模的這一過程的總稱。其中,數據合并可以將多張互相關聯(lián)的表格合并為一張;數據清洗可以去除重復、缺失、異常、不一致的數據;數據標準化可以去除特征間的量綱差異;數據變換則可以通過離散化、啞變量處理等技術滿足后期分析與建模的數據要求。在數據分析的過程中,數據預處理的各個過程互相交叉,并沒有明確的先后順序。數據分析的流程3.數據預處理分析與建模是指通過對比分析、分組分析、交叉分析、回歸分析等分析方法,以及聚類模型、分類模型、關聯(lián)規(guī)則、智能推薦等模型與算法,發(fā)現(xiàn)數據中有價值的信息,并得出結論的過程。在數據分析過程中,具體使用哪種數據獲取方式,需要依據需求分析的結果而定。分析與建模的方法按照目標不同可以分為幾大類。如果分析目標是描述客戶行為模式的,那么可以采用描述型數據分析方法,同時還可以考慮關聯(lián)規(guī)則、序列規(guī)則和聚類模型等。如果分析目標是量化未來一段時間內某個事件發(fā)生概率的,那么可以使用兩大預測分析模型,即分類預測模型和回歸預測模型。在常見的分類預測模型中,目標特征通常為二元數據,如欺詐與否、流失與否、信用好壞等。在回歸預測模型中,目標特征通常為連續(xù)型數據,常見的有股票價格預測等。數據分析的流程4.分析與建模模型評價是指對于已經建立的一個或多個模型,根據其模型的類別,使用不同的指標評價模型性能優(yōu)劣的過程。常用的聚類模型評價指標有ARI評價法(蘭德系數)、AMI評價法(互信息)、V-measure評分、FMI評價法和輪廓系數等。常用的分類模型評價指標有準確率(Accuracy)、精確率(Precision)、召回率(Recall)、F1值(F1Value)、ROC和AUC等。常用的回歸模型評價指標有平均絕對誤差、均方誤差、中值絕對誤差和可解釋方差值等。模型優(yōu)化則是指模型性能在經過模型評價后已經達到了要求,但在實際生產環(huán)境應用過程中,發(fā)現(xiàn)模型的性能并不理想,繼而對模型進行重構與優(yōu)化的過程。多數情況下,模型優(yōu)化和分析與建模的過程基本一致。數據分析的流程5.模型評價與優(yōu)化部署是指將數據分析結果與結論應用至實際生產系統(tǒng)的過程。根據需求的不同,部署階段可以是一份包含了現(xiàn)狀具體整改措施的數據分析報告,也可以是將模型部署在整個生產系統(tǒng)的解決方案。在多數項目中,數據分析師提供的是一份數據分析報告或一套解決方案,實際執(zhí)行與部署的是需求方。數據分析的流程6.部署企業(yè)使用數據分析解決不同的問題,實際應用的數據分析場景主要分為客戶分析、營銷分析、社交媒體分析、網絡安全、設備管理、交通物流分析和欺詐行為檢測7類??蛻舴治鲋饕歉鶕蛻舻幕緮祿畔⑦M行商業(yè)行為分析,首先界定目標客戶,根據客戶的需求、目標客戶的性質、所處行業(yè)的特征和客戶的經濟狀況等基本信息,使用統(tǒng)計分析方法和預測驗證法分析目標客戶,提高銷售效率。其次了解客戶的采購過程,根據客戶采購類型、采購性質進行分類分析,制定不同的營銷策略。根據已有的客戶特征進行客戶特征分析、客戶忠誠度分析、客戶注意力分析、客戶營銷分析和客戶收益分析。通過有效的客戶分析能夠掌握客戶的具體行為特征,將客戶細分,使得運營策略達到最優(yōu),提升企業(yè)整體效益等。了解數據分析應用場景1.客戶分析(CustomerAnalytics)營銷分析囊括了產品分析、價格分析、渠道分析、廣告與促銷分析這4類分析。產品分析主要是競爭產品分析,通過對競爭產品的分析制定自身產品策略。價格分析又可以分為成本分析和售價分析。成本分析的目的是降低不必要的成本;售價分析的目的是制定符合市場的價格。渠道分析是指對產品的銷售渠道進行分析,確定最優(yōu)的渠道配比。廣告與促銷分析則能夠結合客戶分析,實現(xiàn)銷量的提升、利潤的增加。了解數據分析應用場景2.營銷分析(SalesandMarketingAnalytics)社交媒體分析是以不同的社交媒體渠道生成的內容為基礎,實現(xiàn)不同社交媒體的用戶分析、訪問分析和互動分析等。用戶分析主要根據用戶注冊信息、登錄平臺的時間點和平時發(fā)表的內容等用戶數據,分析用戶個人畫像和行為特征。訪問分析則是通過用戶平時訪問的內容分析用戶的興趣愛好,進而分析潛在的商業(yè)價值?;臃治龈鶕ハ嚓P注對象的行為預測該對象未來的某些行為特征。社交媒體分析還能為情感和輿情監(jiān)督提供豐富的資料。了解數據分析應用場景3.社交媒體分析(SocialMediaAnalytics)大規(guī)模網絡安全事件的發(fā)生,例如,2017年5月席卷全球的WannaCry病毒,讓企業(yè)意識到網絡攻擊發(fā)生時預先快速識別的重要性。傳統(tǒng)的網絡安全主要依靠靜態(tài)防御,處理病毒的主要流程是發(fā)現(xiàn)威脅、分析威脅和處理威脅,這種情況下,往往只在威脅發(fā)生以后系統(tǒng)才能做出反應。新型的病毒防御系統(tǒng)可使用數據分析技術,建立潛在攻擊識別分析模型,監(jiān)測大量網絡活動數據和相應的訪問行為,識別可能進行入侵的可疑模式,做到未雨綢繆。了解數據分析應用場景4.網絡安全(CyberSecurity)設備管理同樣是企業(yè)關注的重點。設備維修一般采用標準修理法、定期修理法和檢查后修理法等方法。其中,標準修理法可能會造成設備過剩修理,修理費用高;雖然檢查后修理法解決了修理費用成本問題,但是修理前的準備工作繁多,設備的停歇時間過長。目前企業(yè)能夠通過物聯(lián)網技術收集和分析設備上的數據流,包括連續(xù)用電、零部件溫度、環(huán)境濕度和污染物顆粒等多種潛在特征,建立設備管理模型,從而預測設備故障,合理安排預防性的維護,以確保設備正常工作,降低因設備故障帶來的安全風險。了解數據分析應用場景5.設備管理(PlantandFacilityManagement)物流是物品從供應地向接收地的實體流動,是將運輸、儲存、裝卸搬運、包裝、流通加工、配送和信息處理等功能有機結合起來從而實現(xiàn)用戶要求的過程。用戶可以通過業(yè)務系統(tǒng)和GPS定位系統(tǒng)獲得數據,使用數據構建交通狀況預測分析模型,有效預測實時路況、物流狀況、車流量、客流量和貨物吞吐量,進而提前補貨,制定庫存管理策略。了解數據分析應用場景6.交通物流分析(TransportandLogisticsAnalytics)身份信息泄露及盜用事件逐年增長,隨之而來的是欺詐行為和交易的增多。公安機關、各大金融機構、電信部門可利用用戶基本信息、用戶交易信息和用戶通話短信信息等數據,識別可能發(fā)生的潛在欺詐交易,做到提前預防、未雨綢繆。以大型金融機構為例,通過分類模型分析方法對非法集資和洗錢的邏輯路徑進行分析,找到其行為特征。聚類模型分析方法可以分析相似價格的運動模式。例如,對股票進行聚類,可能發(fā)現(xiàn)關聯(lián)交易及內幕交易的可疑信息。關聯(lián)規(guī)則分析方法可以監(jiān)控多個用戶的關聯(lián)交易行為,為發(fā)現(xiàn)跨賬號協(xié)同的金融詐騙行為提供依據。了解數據分析應用場景7.欺詐行為檢測(FraudDetection)1熟悉Python數據分析的工具目錄認識數據分析2安裝Python的Anaconda發(fā)行版3掌握JupyterNotebook常用功能4目前主流的數據分析語言主要有Python、R、MATLAB這3種。其中,Python具有豐富和強大的庫,同時Python常被稱為膠水語言,能夠將使用其他語言制作的各種模塊(尤其是C/C++)輕松地連接在一起,是一門更易學、更嚴謹的程序設計語言。R語言通常用于統(tǒng)計分析、繪圖。R是屬于GNU系統(tǒng)的一個自由、免費、源代碼開放的軟件。MATLAB的作用是進行矩陣運算、繪制函數與數據、實現(xiàn)算法、創(chuàng)建用戶界面和連接其他編程語言的程序等,其主要應用于工程計算、控制設計、信號處理與通信、圖像處理、信號檢測、金融建模設計與分析等領域。了解數據分析常用工具Python、R、MATLAB這3種語言均可以進行數據分析。表11從語言學習難易程度、使用場景、第三方支持、流行領域和軟件成本5方面比較了Python、R、MATLAB這3種數據分析工具。了解數據分析常用工具PythonRMATLAB語言學習難易程度接口統(tǒng)一,學習曲線平緩接口眾多,學習曲線陡峭自由度大,學習曲線較為平緩使用場景數據分析、機器學習、矩陣運算、科學數據可視化、數字圖像處理等統(tǒng)計分析、機器學習、科學數據可視化等矩陣運算、數值分析、科學數據可視化、機器學習、符號計算、數字圖像處理、數字信號處理等第三方支持擁有大量的第三方庫,能夠簡便地調用C、C++、Fortran、Java等其他程序語言擁有大量的包,能夠調用C、C++、Fortran、Java等其他程序語言擁有大量專業(yè)的工具箱,在新版本中加入了對C、C++、Java的支持流行領域工業(yè)界>學術界工業(yè)界≈學術界工業(yè)界≤學術界軟件成本開源免費開源免費商業(yè)收費語法簡單精練。對于初學者來說,比起其他編程語言,Python更容易上手。含有大量功能強大的庫。結合在編程方面的強大實力,可以只使用Python這一種語言去構建以數據為中心的應用程序。功能強大。從特性觀點來看,Python是一個混合體。豐富的工具集使Python介于傳統(tǒng)的腳本語言和系統(tǒng)語言之間。Python不僅具備所有腳本語言簡單和易用的特點,而且提供了編譯語言所具有的高級軟件工程工具。研究、原型構建和構建生產系統(tǒng)。研究人員和工程技術人員使用同一種編程工具,會給企業(yè)帶來非常顯著的組織效益,并降低企業(yè)的運營成本。Python是一門膠水語言。Python程序能夠以多種方式輕易地與其他語言的組件“粘接”在一起。例如,Python的C語言API可以幫助Python程序靈活地調用C程序,這意味著用戶可以根據需要給Python程序添加功能或在其他環(huán)境系統(tǒng)中使用Python。了解Python數據分析的優(yōu)勢使用Python進行數據分析時所用到的類庫主要有NumPy、SciPy、pandas、Matplotlib、seaborn、pyecharts、scikit-learn等。NumPy是NumericalPython的簡稱,是一個Python科學計算的基礎包。NumPy主要提供了以下內容??焖俑咝У亩嗑S數組對象ndarray。對數組執(zhí)行元素級計算和直接對數組執(zhí)行數學運算的函數。讀/寫硬盤上基于數組的數據集的工具。線性代數運算、傅里葉變換和隨機數生成的功能。將C、C++、Fortran代碼集成到Python的工具。了解Python數據分析常用類庫1.NumPy除了為Python提供快速的數組處理能力外,NumPy在數據分析方面還有另外一個主要作用,即作為算法之間傳遞數據的容器。對于數值型數據,使用NumPy數組存儲和處理數據要比使用內置的Python數據結構高效得多。此外,由低級語言(如C和Fortran)編寫的庫可以直接操作NumPy數組中數據,無須進行任何數據復制工作。了解Python數據分析常用類庫SciPy是基于Python的開源代碼,是一組專門解決科學計算中各種標準問題域的模塊的集合,特別是與NumPy、Matplotlib和pandas這些核心包一起使用時。SciPy主要包含了8個模塊,不同的模塊有不同的應用,如用于插值、積分、優(yōu)化、處理圖像和特殊函數等。了解數據分析應用場景2.SciPy模塊名稱簡介egrate數值積分和微分方程求解器scipy.linalg擴展了由numpy.linalg提供的線性代數求解和矩陣分解功能scipy.optimize函數優(yōu)化器(最小化器)以及根查找算法scipy.signal信號處理工具scipy.sparse稀疏矩陣和稀疏線性系統(tǒng)求解器scipy.specialSPECFUN[這是一個實現(xiàn)了許多常用數學函數(如伽馬函數)的Fortran庫]的包裝器scipy.stats檢驗連續(xù)和離散概率分布(如密度函數、采樣器、連續(xù)分布函數等)的函數與方法、各種統(tǒng)計檢驗的函數與方法,以及各類描述性統(tǒng)計的函數與方法scipy.weave利用內聯(lián)C++代碼加速數組計算的工具pandas是Python的數據分析核心庫,最初被作為金融數據分析工具而開發(fā)出來。pandas為時間序列分析提供了很好的支持,它提供了一系列能夠快速、便捷地處理結構化數據的數據結構和函數。Python之所以成為強大而高效的數據分析環(huán)境與它息息相關。pandas兼具NumPy高性能的數組計算功能以及電子表格和關系型數據庫(如SQL)靈活的數據處理功能。它提供了復雜精細的索引功能,以便完成重塑、切片與切塊、聚合和選取數據子集等操作。pandas將是本書中使用的主要工具。了解數據分析應用場景3.pandasMatplotlib是較為流行的用于繪制數據圖表的Python庫,是Python的2D繪圖庫。Matplotlib最初由約翰·亨特(JohnD.Hunter,JDH)創(chuàng)建,目前由一個龐大的開發(fā)團隊維護。Matplotlib的操作比較容易,用戶只需用幾行代碼即可生成直方圖、功率譜圖、條形圖、錯誤圖和散點圖等圖形。Matplotlib提供了pylab的模塊,其中包括了NumPy和pyplot中許多常用的函數,方便用戶快速進行計算和繪圖。Matplotlib與IPython的結合,提供了一種非常好用的交互式數據繪圖環(huán)境。繪制的圖表也是交互式的,讀者可以利用繪圖窗口中工具欄中的相應工具放大圖表中的某個區(qū)域,或對整個圖表進行平移瀏覽。了解數據分析應用場景4.Matplotlibseaborn是基于Matplotlib的圖形可視化Python庫,它提供了一種高度交互式界面,便于用戶能夠做出各種有吸引力的統(tǒng)計圖表。seaborn是在Matplotlib的基礎上進行了更高級的API封裝,使得作圖更加容易。seaborn不需要了解大量的底層代碼,即可使圖形變得精致。在大多數情況下,使用seaborn能做出很具有吸引力的圖,而使用Matplotlib能制作具有更多特色的圖。因此,可將seaborn視為Matplotlib的補充,而不是替代物。同時,seaborn能高度兼容NumPy與pandas數據結構以及scipy與statsmodels等統(tǒng)計模式,可以在很大程度上幫助用戶實現(xiàn)數據可視化。了解數據分析應用場景5.seabornEcharts是一個由百度開源的數據可視化工具,憑借著良好的交互性,精巧的圖表設計,得到了眾多開發(fā)者的認可。而Python是一門富有表達力的語言,很適合用于數據處理。pyecharts是Python與Echarts的結合。pyecharts可以展示動態(tài)交互圖,對于展示數據更方便,當鼠標懸停在圖上時,即可顯示數值、標簽等。pyecharts支持主流Notebook環(huán)境,如JupyterNotebook、JupyterLab等;可輕松集成至Flask、Django等主流Web框架;高度靈活的配置項,可輕松搭配出精美的圖表。pyecharts囊括了30多種常見圖表,如Bar(柱形圖/條形圖)、Boxplot(箱形圖)、Funnel(漏斗圖)、Gauge(儀表盤)、Graph(關系圖)、HeatMap(熱力圖)、Radar(雷達圖)、Sankey(桑基圖)、Scatter(散點圖)、WordCloud(詞云圖)等。了解數據分析應用場景6.pyechartsscikit-learn是一個簡單有效的數據挖掘和數據分析工具,可以供用戶在各種環(huán)境下重復使用。scikit-learn建立在NumPy、SciPy和Matplotlib基礎之上,對一些常用的算法方法進行了封裝。目前,scikit-learn的基本模塊主要有數據預處理、模型選擇、分類、聚類、數據降維和回歸6個。在數據量不大的情況下,scikit-learn可以解決大部分問題。對算法不精通的用戶在執(zhí)行建模任務時,并不需要自行編寫所有的算法,只需要簡單地調用scikit-learn庫里的模塊即可。了解數據分析應用場景7.scikit-learn1熟悉Python數據分析的工具目錄認識數據分析2安裝Python的Anaconda發(fā)行版3掌握JupyterNotebook常用功能4Python擁有NumPy、SciPy、pandas、Matplotlib、seaborn、pyecharts和scikit-learn等功能齊全、接口統(tǒng)一的庫,能為數據分析工作提供極大的便利。庫的管理和版本問題,使得數據分析人員并不能夠專注于數據分析,而是將大量的時間花費在與環(huán)境配置相關的問題上。基于上述原因,Anaconda發(fā)行版應運而生。Anaconda發(fā)行版Python預裝了150個以上的常用Packages,囊括了數據分析常用的NumPy、SciPy、Matplotlib、seaborn、pyecharts、pandas、scikit-learn庫,使得數據分析人員能夠更加順暢、專注地使用Python解決數據分析相關問題。推薦數據分析初學者(尤其是Windows系統(tǒng)用戶)安裝此Python發(fā)行版。只需要到Anaconda官方網站下載適合自身的安裝包即可。安裝Python的Anaconda發(fā)行版Python的Anaconda發(fā)行版主要有以下幾個特點。包含了眾多流行的科學、數學、工程和數據分析的Python庫。完全開源和免費。額外的加速和優(yōu)化是收費的,但對于學術用途,可以申請免費的License。全平臺支持Linux、Windows、Mac;支持Python2.6、2.7、3.4、3.5、3.6和3.8等,可自由切換。了解Python的Anaconda發(fā)行版進入Anaconda官方網站,下載Windows系統(tǒng)中的Anaconda安裝包,選擇Python3.8版本。安裝Anaconda的具體步驟如下。單擊已下載好的Anaconda安裝包,并單擊“Next”按鈕進入下一步。在Windows系統(tǒng)中安裝Anaconda單擊“IAgree”按鈕,同意上述協(xié)議并進入下一步。在Windows系統(tǒng)中安裝Anaconda選擇圖中“AllUsers(requiresadminprivileges)”單選按鈕,單擊“Next”進入下一步。在Windows系統(tǒng)中安裝Anaconda單擊“Browse”按鈕,選擇在指定的路徑安裝Anaconda,選擇完成后單擊“Next”按鈕,進入下一步。在Windows系統(tǒng)中安裝Anaconda兩個復選框分別代表了允許將Anaconda添加到系統(tǒng)路徑環(huán)境變量中、Anaconda使用的Python版本為3.8。全部勾選后,單擊“Install”按鈕,等待安裝結束。在Windows系統(tǒng)中安裝Anaconda單擊“Finish”按鈕,完成Anaconda安裝。在Windows系統(tǒng)中安裝Anaconda打開一個用戶終端Terminal。使用cd命令將當前路徑切換至系統(tǒng)下Anaconda安裝包所在的文件路徑。在Linux系統(tǒng)中安裝Anaconda輸入命令“bashAnaconda3-2020.11-Linux-x86_64.sh”,進行安裝。在Linux系統(tǒng)中安裝Anaconda按下鍵盤中的“Enter”鍵后,出現(xiàn)軟件協(xié)議相關內容,在閱讀時連續(xù)按“Enter”鍵讀取全文,在協(xié)議末尾會讓讀者確認是否同意以上協(xié)議,輸入“yes”,并按下鍵盤中的“Enter”鍵確認同意。在Linux系統(tǒng)中安裝Anaconda同意協(xié)議后,默認安裝路徑在用戶home目錄下(/home/python/anaconda3),安裝路徑設置完成后,軟件即可開始安裝。在Linux系統(tǒng)中安裝Anaconda在安裝過程快結束時,將提示讀者是否將Anaconda的安裝路徑加入到系統(tǒng)當前用戶的環(huán)境變量中,輸入“yes”,并按下鍵盤中的“Enter”鍵確認同意。在Linux系統(tǒng)中安裝Anaconda軟件安裝完成后使用Linux系統(tǒng)的文本編輯器VIM或gedit查看當前用戶的環(huán)境變量。輸入命令“vi/home/python/.bashrc”來查看文檔,出現(xiàn)界面,表示環(huán)境變量配置完成,說明Anaconda已經完成安裝。如果未配置完成,那么需要在.bashrc文檔末尾添加Anaconda安裝目錄的環(huán)境變量。在Linux系統(tǒng)中安裝Anaconda1熟悉Python數據分析的工具目錄認識數據分析2安裝Python的Anaconda發(fā)行版3掌握JupyterNotebook常用功能4jupyterNotebook(此前被稱為IPythonNotebook)是一個交互式筆記本,支持運行40多種編程語言,其本質上是一個支持實時代碼、數學方程、可視化和Markdown的Web應用程序。對于數據分析,JupyterNotebook最大的優(yōu)點是可以重現(xiàn)整個分析過程,并將說明文字、代碼、圖表、公式和結論都整合在一個文檔中。用戶可以通過電子郵件、Dropbox、GitHub和JupyterNotebookViewer將分析結果分享給其他人。掌握JupyterNotebook常用功能在安裝完成Python、配置好環(huán)境變量并安裝了JupyterNotebook后,在Windows系統(tǒng)下的命令行或在Linux系統(tǒng)下的終端輸入命令“jupyternotebook”,即可啟動JupyterNotebook。掌握JupyterNotebook的基本功能1.啟動JupyterNotebook打開JupyterNotebook以后會在系統(tǒng)默認的瀏覽器中出現(xiàn)圖116的界面。單擊右上方的“New”下拉按鈕,出現(xiàn)下拉列表。掌握JupyterNotebook的基本功能2.新建一個Notebook
在下拉列表中選擇需要創(chuàng)建的Notebook類型。其中,“TextFile”為純文本型,“Folder”為文件夾,“Python3”表示Python運行腳本,灰色字體表示不可用項目。選擇“Python3”選項,進入Python腳本編輯界面。掌握JupyterNotebook的基本功能JupyterNotebook中的Notebook文檔由一系列單元(Cell)構成,主要有以下兩種形式的單元,在JupyterNotebook中的形式。掌握JupyterNotebook的基本功能3.JupyterNotebook的界面及其構成代碼單元。代碼單元是讀者編寫代碼的地方,通過按“Shift+Enter”組合鍵運行代碼,其結果顯示在本單元下方。代碼單元左邊有“In[]:”編號,方便使用者查看代碼的執(zhí)行次序。Markdown單元。Markdown單元可對文本進行編輯,采用Markdown的語法規(guī)范,可以設置文本格式,插入鏈接、圖片甚至數學公式。同樣,按“Shift+Enter”組合鍵可運行Markdown單元,顯示格式化的文本。掌握JupyterNotebook的基本功能JupyterNotebook編輯界面類似于Linux的VIM編輯器界面,在Notebook中也有兩種模式,其模式如下。編輯模式。用于編輯文本和代碼。選中單元并按“Enter”鍵進入編輯模式,此時單元左側顯示綠色豎線。命令模式。用于執(zhí)行鍵盤輸入的快捷命令。通過按“Esc”鍵進入命令模式,此時單元左側顯示藍色豎線。掌握JupyterNotebook的基本功能
如果要使用快捷鍵,那么首先按“Esc”鍵進入命令模式,然后按相應的鍵實現(xiàn)對文檔的操作。例如,切換到代碼單元按“Y”鍵,切換到Markdown單元按“M”鍵,在本單元的下方增加一單元按“B”鍵,查看所有快捷命令按“H”鍵。掌握JupyterNotebook的基本功能在JupyterNotebook中,可以使用Markdown進行文本標記,以便用戶查看。同時JupyterNotebook還可以將Notebook導出形成HTML、PDF等多種格式。Markdown是一種可以使用普通文本編輯器編寫的標記語言,通過簡單的標記語法,便可以使普通文本內容具有一定的格式。JupyterNotebook的Markdown單元功能較多,下面將從標題、列表、字體、表格和數學公式編輯5個方面進行介紹。掌握JupyterNotebook的高級功能1.Markdown標題是標明文章和作品等內容的簡短語句。讀者寫報告或寫論文時,標題是不可或缺的,尤其是論文的章節(jié)等,需要使用不同級別的標題。一般使用Markdown中的類Atx形式進行標題的排版,在首行前加一個“#”字符代表一級標題,加兩個“#”字符代表二級標題,以此類推。掌握JupyterNotebook的高級功能(1)標題列表是一種由數據項構成的有限序列,即按照一定的線性順序排列而成的數據項的集合。列表一般分為兩種:一種是無序列表,使用一些圖標標記,沒有序號,沒有排列順序;另一種是有序列表,使用數字標記,有排列順序。Markdown對于無序列表,可使用星號、加號或減號作為列表標記;Markdown對于有序列表,則使用數字加“.”和“”(一個空格)表示掌握JupyterNotebook的高級功能(2)列表文檔中為了凸顯部分內容,一般對文字使用加粗或斜體格式,使得該部分內容變得更加醒目。對于Markdown排版工具而言,通常使用星號“*”和下劃線“_”作為標記字詞的符號。前后有兩個星號或下劃線表示加粗,前后有3個星號或下劃線表示斜體。掌握JupyterNotebook的高級功能(3)字體使用Markdown同樣也可以繪制表格。代碼的第一行表示表頭,第二行分隔表頭和主體部分,從第三行開始,每一行代表一個表格行。列與列之間用符號“|”隔開,表格每一行的兩邊也要有符號“|”掌握JupyterNotebook的高級功能(4)表格LaTeX是寫科研論文的必備工具,不但能實現(xiàn)嚴格的文檔排版,而且能編輯復雜的數學公式。在JupyterNotebook的Markdown單元中也可以使用LaTeX來插入數學公式。在文本行中插入數學公式,應使用兩個“$”符號,如質能方程“$E=mc^2$”。如果要插入一個數學區(qū)塊,那么使用兩個“$$”符號,如使用“$$z=\frac{x}{y}$$”表示式。掌握JupyterNotebook的高級功能(5)數學公式編輯Notebook還有一個強大的特性,就是導出功能,可以將Notebook導出為多種格式,如HTML、Markdown、reST、PDF(通過LaTeX)等格式。其中,導出為PDF功能,可以讓讀者不用寫LaTeX即可創(chuàng)建漂亮的PDF文檔。讀者還可以將Notebook作為網頁發(fā)布在自己的網站上。甚至,可以導出為reST格式,作為軟件庫的文檔。導出功能可以依次選擇“File”→“Downloadas”級聯(lián)菜單中的命令實現(xiàn)。掌握JupyterNotebook的高級功能2.導出功能本章主要介紹了數據分析的概念、流程、應用場景和常用工具,闡述了使用Python進行數據分析的優(yōu)勢,列舉說明了Python數據分析重要類庫的功能。緊接著闡述了Anaconda的特點,實現(xiàn)了在Windows和Linux兩個系統(tǒng)中安裝Anaconda數據分析環(huán)境。最后介紹了Python數據分析工具JupyterNotebook的常用功能。小結NumPy數值計算基礎1掌握NumPy矩陣與通用函數目錄掌握NumPy數組對象ndarray2利用NumPy進行統(tǒng)計分析3NumPy提供了兩種基本的對象。ndarray(N-dimensionalArrayObject):存儲單一數據類型的多維數組。ufunc(UniversalFunctionObject):能夠對數組進行處理的函數。創(chuàng)建數組對象在創(chuàng)建數組之前,需要先了解數組的基本屬性,數組的屬性及其說明如下表。創(chuàng)建數組對象1.數組屬性屬性名稱屬性說明ndim返回int,表示數組的維數shape返回tuple,表示數組形狀的陣列,對于n行m列的矩陣,形狀為(n,m)size返回int,表示數組的元素總數,等于數組形狀的乘積dtype返回data-type,表示數組中元素的數據類型itemsize返回int,表示數組的每個元素的大小(以字節(jié)為單位),例如,一個元素類型為float64的數組的itemsiz屬性值為8(float64占用64個bits,每個字節(jié)長度為8,所以64/8,占用8個字節(jié)),一個元素類型為complex32的數組的itemsiz屬性值為4,即32/8NumPy提供的array函數可以創(chuàng)建一維或多維數組,其基本使用格式如下。array函數主要參數及其說明如下表。創(chuàng)建數組對象2.數組創(chuàng)建參數名稱參數說明object接收array_like,表示所需創(chuàng)建的數組對象,無默認值dtype接收data-type,表示數組所需的數據類型,如果未給定,那么選擇保存對象所需的最小類型,默認為Nonendmin接收int,表示指定生成數組應該具有的最小維數,默認為0numpy.array(object,dtype=None,*,copy=True,order='K',subok=False,ndmin=0,like=None)除了使用array函數創(chuàng)建數組之外,還可以使用arange函數創(chuàng)建數組。arange函數類似于Python自帶的函數range,通過指定開始值、終值和步長來創(chuàng)建一維數組,創(chuàng)建的數組不含終值。arange函數的基本使用格式如下。arange函數常用參數及其說明如下表。創(chuàng)建數組對象參數名稱參數說明start接收int或實數,表示數組的開始值,生成的區(qū)間包括該值,默認為0stop接收int或實數,表示數組的終值,生成的區(qū)間不包括該值,無默認值step接收int或實數,表示在數組中,值之間的間距,默認為1dtype接收數據類型,表示輸出數組的類型,默認為Nonenumpy.arange([start,]stop,[step,]dtype=None,*,like=None)linspace函數通過指定開始值、終值和元素個數來創(chuàng)建一維數組,默認設置包括終值,這一點需要和arange函數區(qū)分。linspace函數的基本使用格式如下。linspace函數的常用參數及其說明如下表。創(chuàng)建數組對象參數名稱參數說明start接收array_like,表示起始值,無默認值stop接收array_like,表示結束值,無默認值num接收int,表示生成的樣本數,默認為50dtype接收數據類型,表示輸出數組的類型,默認為Nonenumpy.linspace(start,stop,num=50,endpoint=True,retstep=False,dtype=None,axis=0)logspace函數和linspace函數類似,它創(chuàng)建的是等比數列。logspace函數的基本使用格式如下。在logspace函數的參數中,除了base參數和linspace函數的retstep參數不同之外,其余均相同。創(chuàng)建數組對象numpy.logspace(start,stop,num=50,endpoint=True,base=10.0,dtype=None,axis=0)NumPy還提供了其他函數用于創(chuàng)建特殊數組,如zeros、eye、diag和ones函數等。zeros函數:用于創(chuàng)建值全部為0的數組,即創(chuàng)建的數組值全部填充為0。eye函數:用于生成主對角線上的元素為1,其他的元素為0的數組,類似單位矩陣。diag函數:創(chuàng)建類似對角的數組,即除對角線外的其他元素都為0,對角線上的元素可以是0或其他值。ones函數:用于創(chuàng)建元素全部為1的數組,即創(chuàng)建的數組元素全部填充為1。創(chuàng)建數組對象在實際的業(yè)務數據處理中,為了更準確地計算結果,需要使用不同精度的數據類型。NumPy極大程度地擴充了原生Python的數據類型。在NumPy中,所有數組的數據類型是同質的,即數組中的所有元素類型必須是一致的。將元素類型保持一致可以更容易確定該數組所需要的存儲空間。創(chuàng)建數組對象3.數組數據類型NumPy的基本數據類型及其取值范圍如下表。創(chuàng)建數組對象類型描述bool用一位存儲的布爾類型(值為True或False)inti由所在平臺決定其精度的整數(一般為int32或int64)int8整數,范圍為128~127int16整數,范圍為32768~32767int32整數,范圍為231~2321int64整數,范圍為263~2631uint8無符號整數,范圍為0~255uint16無符號整數,范圍為0~65535uint32無符號整數,范圍為0~2321NumPy的基本數據類型及其取值范圍(續(xù)表)。創(chuàng)建數組對象類型描述uint64無符號整數,范圍為0~2641float16半精度浮點數(16位),其中用1位表示正負號,用5位表示指數,用10位表示尾數float32單精度浮點數(32位),其中用1位表示正負號,用8位表示指數,用23位表示尾數float64或float雙精度浮點數(64位),其中用1位表示正負號,用11位表示指數,用52位表示尾數complex64復數,分別用兩個32位浮點數表示實部和虛部complex128或complex復數,分別用兩個64位浮點數表示實部和虛部uint32無符號整數,范圍為0~2321手動創(chuàng)建數組往往很難達到數量要求,NumPy提供了強大的生成隨機數的功能。然而,真正的隨機數很難獲得,在實際中使用的都是偽隨機數。在大部分情況下,偽隨機數就能滿足獲取的需求。當然,某些特殊情況除外,如進行高精度的模擬實驗。對于NumPy,與隨機數相關的函數都在random模塊中,其中包括了可以生成服從多種概率分布隨機數的函數。生成隨機數random函數是最常見的生成隨機數的方法,random函數的基本使用格式如下。參數size接收int,表示返回的隨機浮點數大小,默認為None。生成隨機數numpy.random.random(size=None)rand函數可以生成服從均勻分布的隨機數,其使用格式如下。參數d0,d1,...,dn接收int,表示返回數組的維度必須是非負數。如果沒有給出參數,那么返回單個Python浮點數,無默認值。randn函數可以生成服從正態(tài)分布的隨機數,randn函數的使用格式和參數說明與rand函數相同。生成隨機數numpy.random.rand(d0,d1,...,dn)randint函數可以生成給定上下限范圍的隨機數,其基本使用格式如下。randint函數的常用參數及其說明如下表。生成隨機數numpy.random.randint(low,high=None,size=None,dtype=int)參數名稱參數說明low接收int或類似數組的整數。表示數組最小值。無默認值high接收int或類似數組的整數。表示數組最大值。默認Nonesize接收int或整數元組。表示輸出形狀。默認為Nonedtype接收數據類型。表示輸出數組的類型。默認為int在random模塊中,其他常用于生成隨機數的函數如下表。生成隨機數函數說明seed確定隨機數生成器的種子permutation返回一個序列的隨機排列或返回一個隨機排列的范圍Shuffle對一個序列進行隨機排序binomial產生二項分布的隨機數normal產生正態(tài)(高斯)分布的隨機數beta產生beta分布的隨機數chisquare產生卡方分布的隨機數gamma產生gamma分布的隨機數uniform產生在[0,1]中均勻分布的隨機數NumPy通常以提供高效率的數組著稱,這主要歸功于索引的易用性。1.一維數組的索引一維數組的方法很簡單,與Python中的list的索引方法一致。2.多維數組的索引多維數組的每一個維度都有一個索引,各個維度的索引之間用逗號隔開。多維數組同樣也可以使用整數序列和布爾值索引進行訪問。通過索引訪問數組在NumPy中,常用reshape函數改變數組的“形狀”,即改變數組的維度。reshape函數的基本使用格式如下。reshape函數在改變原始數據的形狀的同時不改變原始數據的值。如果指定的維度和數組的元素數目不吻合,那么函數將拋出異常。變換數組的形態(tài)numpy.reshape(a,newshape,order='C')reshape函數的常用參數及其說明如下表。在NumPy中,可以使用ravel函數完成數組展平工作。flatten函數也可以完成數組展平工作。與ravel函數的區(qū)別在于,flatten函數可以選擇橫向或縱向展平。變換數組的形態(tài)參數名稱參數說明a接收array_like。表示需要變換形態(tài)的數組。無默認值newshape接收int或int型元組。表示變化后的形狀的維度。無默認值order接收str。表示將元素放入數組中的順序,可選C、F、A。默認為C除了可以改變數組“形狀”外,NumPy也可以對數組進行組合。組合主要有橫向組合與縱向組合。使用hstack函數、vstack函數和concatenate函數可完成數組的組合。橫向組合是將ndarray對象構成的元組作為參數,傳給hstack函數??v向組合同樣是將ndarray對象構成的元組作為參數,傳給vstack函數。concatenate函數也可以實現(xiàn)數組的橫向組合和縱向組合,其中當參數axis=1時,數組按照橫向組合,當參數axis=0時,數組按照縱向組合。變換數組的形態(tài)除了對數組進行橫向和縱向的組合之外,還可以對數組進行分割。NumPy提供了hsplit、vsplit、dsplit和split函數,可以將數組分割成相同大小的子數組,也可以指定原數組中需要分割的位置。hsplit函數:可以對數組進行橫向分割,以ndarray對象構成的元組作為參數。vsplit函數:可以對數組進行縱向分割,以ndarray對象構成的元組作為參數。split函數:同樣可以實現(xiàn)數組分割。當參數axis=1時,可以對數組進行橫向分割;當參數axis=0時,可以對數組進行縱向分割。變換數組形態(tài)1掌握NumPy矩陣與通用函數目錄掌握NumPy數組對象ndarray2利用NumPy進行統(tǒng)計分析3在NumPy中,矩陣是ndarray的子類,且數組和矩陣有著重要的區(qū)別。NumPy提供了兩個基本的對象,分別是N維數組對象和通用函數對象,其他對象都是在它們之上構建的。矩陣是繼承自NumPy數組對象的二維數組對象。與數學概念中的矩陣一樣,NumPy中的矩陣也是二維的。使用mat、matrix和bmat函數可創(chuàng)建矩陣。創(chuàng)建NumPy矩陣當使用mat函數創(chuàng)建矩陣時,如果輸入matrix或ndarray對象,那么不會創(chuàng)建相應副本。因此,調用mat函數和調用matrix(data,copy=False)函數等價。在大多數情況下,用戶會根據小的矩陣來創(chuàng)建大的矩陣,即將小矩陣組合成大矩陣。在NumPy中,可以使用bmat分塊矩陣(blockmatrix)函數實現(xiàn)。在NumPy中,矩陣計算是針對整個矩陣中的每個元素進行的。與使用for循環(huán)相比,其在運算速度上更快。創(chuàng)建NumPy矩陣除了能夠實現(xiàn)各類運算外,矩陣還有其特有的屬性,如下表。創(chuàng)建NumPy矩陣屬性名稱屬性說明T返回自身的轉置H返回自身的共軛轉置I返回自身的逆矩陣A返回自身數據的二維數組的一個視圖(沒有做任何的復制)常用的ufunc函數運算有四則運算、比較運算和邏輯運算等。四則運算:ufunc函數支持全部的四則運算,并且保留習慣的運算符,和數值運算的使用方式一樣,但是需要注意的是,操作的對象是數組。數組間的四則運算表示對每個數組中的元素分別進行四則運算,因此進行四則運算的兩個數組的形狀必須相同。比較運算:在ufunc函數中也支持完整的比較運算:>、<、==、>=、<=、!=。比較運算返回的結果是一個布爾數組,其每個元素為數組對應元素的比較結果。邏輯運算:在NumPy邏輯運算中,numpy.all函數表示邏輯and,numpy.any函數表示邏輯or。掌握ufunc函數1.常用的ufunc函數運算廣播(Broadcasting)是指不同形狀的數組之間執(zhí)行算術運算的方式。當使用ufunc函數進行數組計算時,ufunc函數會對兩個數組的對應元素進行計算。進行這種計算的前提是兩個數組的shape一致。如果兩個數組的shape不一致,那么NumPy會實行廣播機制。NumPy中的廣播機制并不容易理解,特別是在進行高維數組計算的時候。掌握ufunc函數2.ufunc函數的廣播機制為了更好地使用廣播機制,需要遵循以下4個原則。讓所有的輸入數組向其中shape最長的數組看齊,shape中不足的部分通過在前面加1補齊。輸出數組的shape是輸入數組shape的各個軸上的最大值。如果輸入數組的某個軸和輸出數組的對應軸的長度相同或其長度為1,那么這個數組能夠用于計算,否則系統(tǒng)將會出錯。當輸入數組的某個軸的長度為1時,沿著此軸運算時使用此軸上的第一組值。掌握ufunc函數1掌握NumPy矩陣與通用函數目錄掌握NumPy數組對象ndarray2利用NumPy進行統(tǒng)計分析3NumPy的文件讀/寫主要有二進制的文件讀/寫和文件列表形式的數據讀/寫兩種形式。NumPy提供了若干函數,可以將結果保存到二進制或文本文件中。除此之外,NumPy還提供了許多從文件讀取數據并將其轉換為數組的方法。讀/寫文件save函數以二進制的格式保存數據,load函數從二進制的文件中讀取數據,save函數的語法格式如下。參數file接收str,表示要保存的文件的名稱,需要指定文件保存的路徑,如果未設置,那么將會保存到默認路徑下面。參數arr接收array_like,表示需要保存的數組。save函數就是將數組arr保存至名稱為“file”的文件中,其文件的擴展名.npy是系統(tǒng)自動添加的。如果將多個數組保存到一個文件中,那么可以使用savez函數,其文件的擴展名為.npz。當需要讀取二進制文件時,可以使用load函數,用文件名作為參數,存儲時可以省略擴展名,但讀取時不能省略擴展名。讀/寫文件numpy.save(file,arr,allow_pickle=True,fix_imports=True)在實際的數據分析任務中,更多地是使用文本格式的數據,如TXT或CSV格式,因此通常會使用savetxt函數、loadtxt函數和genfromtxt函數執(zhí)行對文本格式數據的讀取任務。savetxt函數可將數組寫到以某種分隔符隔開的文本文件中,其基本使用格式如下。參數fname接收str,表示文件名。參數X接收array_like,表示數組數據。參數delimiter接收str,表示數據分隔符。讀/寫文件numpy.savetxt(fname,X,fmt='%.18e',delimiter='',newline='\n',header='',footer='',comments='#',encoding=None)loadtxt函數執(zhí)行的是相反的操作,即將文件加載到一個二維數組中,其基本使用格式如下。loadtxt函數的常用參數主要有兩個,分別是fname和delimiter。參數fname接收str,表示需要讀取的文件、文件名或生成器。參數delimiter接收str,表示用于分隔數值的分隔符。讀/寫文件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函數和loadtxt函數相似,只不過genfromtxt函數面向的是結構化數組和缺失數據。genfromtxt函數通常使用的參數有3個。即用于存放數據的文件名參數“fname”。用于分隔的字符參數“delimiter”。是否含有列標題參數“names”。讀/寫文件在NumPy中,除了可以使用通用函數對數組進行比較、邏輯等運算之外,還可以使用統(tǒng)計函數對數組進行排序、去重、求最大和最小值以及求均值等統(tǒng)計分析。1.排序NumPy的排序方式主要可以概括為直接排序和間接排序兩種。直接排序指對數值直接進行排序;間接排序是指根據一個或多個鍵對數據集進行排序。在NumPy中,直接排序通常是使用sort函數,間接排序通常是使用argsort函數和lexsort函數。使用函數進行簡單的統(tǒng)計分析sort函數是較為常用的排序方法,無返回值。如果目標函數是一個視圖,那么原始數據將會被修改。當使用sort函數排序時,用戶可以指定一個axis參數,使得sort函數可以沿著指定軸對數據集進行排序。使用argsort函數和lexsort函數,可以在給定一個或多個鍵時,得到一個由整數構成的索引數組,索引值表示數據在新的序列中的位置。lexsort函數可以一次性對滿足多個鍵的數組執(zhí)行間接排序。使用函數進行簡單的統(tǒng)計分析在統(tǒng)計分析的工作中,難免會出現(xiàn)“臟”數據的情況。重復數據就是“臟”數據的情況之一。如果一個一個地手動刪除,那么將會耗時費力且效率低。在NumPy中,可以通過unique函數查找出數組中的唯一值并返回已排序的結果。另一種情況,在統(tǒng)計分析中也經常遇到,即需要將一個數據重復若干次。在NumPy中主要使用tile函數和repeat函數實現(xiàn)數據重復。使用函數進行簡單的統(tǒng)計分析2.去重與重復數據tile函數的基本使用格式如下。tile函數主要有兩個參數。參數A接收array_like,表示輸入的數組。參數reps接收array_like,表示指定數組的重復次數。使用函數進行簡單的統(tǒng)計分析numpy.tile(A,reps)repeat函數的基本使用格式如下。repeat函數主要有3個參數。參數a接收array_like,表示輸入的數組。參數repeats接收int或整數的數組,表示每個元素的重復次數。參數axis接收int,表示用于指定沿著哪個軸進行重復。tile函數和repeat函數的主要區(qū)別在于,tile函數是對數組進行重復操作,repeat函數是對數組中的每個元素進行重復操作。使用函數進行簡單的統(tǒng)計分析numpy.repeat(a,repeats,axis=None)在NumPy中,有許多可以用于統(tǒng)計分析的函數。常見的統(tǒng)計函數有sum、mean、std、var、min和max等。幾乎所有的統(tǒng)計函數在針對二維數組計算的時候都需要注意軸的概念。當axis參數為0時,表示沿著縱軸進行計算;當axis為1時,表示沿著橫軸進行計算。默認情況下,函數并不按照任一軸向計算,而是計算一個總值。聚合計算將直接顯示計算的最終結果,在NumPy中,cumsum函數和cumprod函數采用不聚合計算,產生一個由中間結果組成的數組。使用函數進行簡單的統(tǒng)計分析3.常用的統(tǒng)計函數本章主要介紹了NumPy數組對象ndarray的創(chuàng)建、生成隨機數的方法、數組的索引和數組形態(tài)的變換方法。同時還介紹了矩陣的創(chuàng)建方法、使用通用函數對數組進行計算。最后介紹了利用NumPy讀寫文件以及進行統(tǒng)計分析的常用函數,為后面真正進入數據分析課程內容的學習和學習其他數據分析庫(如pandas)打下堅實的基礎。小結pandas統(tǒng)計分析基礎1掌握DataFrame的常用操作目錄讀/寫不同數據源的數據2轉換與處理時間序列數據3使用分組聚合進行組內計算4創(chuàng)建透視表與交叉表5pandas是Python的核心數據分析支持庫,提供了快速、靈活、明確的數據結構,旨在簡單、直觀地處理關系型、標記型數據。pandas建造在NumPy之上,所以使得pandas在以NumPy為中心的應用中得以容易的使用,而pandas庫在與其它第三方科學計算支持庫結合時也能夠完美的進行集成。在Python中,pandas庫的功能十分強大,它可提供高性能的矩陣運算??捎糜跀祿诰蚝蛿祿治?,同時也提供數據清洗功能;支持類似SQL的數據增、刪、查、改,并且?guī)в胸S富的數據處理函數;支持時間序列分析功能;支持靈活處理缺失數據等。認識pandas庫pandas有兩個強大的利器。Series(一維數據)是一種類似于一維數組的對象,是由一組數據(各種NumPy數據類型)以及一組與之相關的數據標簽(即索引)組成,而僅由一組數據也可產生簡單的Series對象。DataFrame是pandas中的一個表格型的數據結構,包含有一組有序的列,每列可以是不同的值類型(數值、字符串、布爾型等),DataFrame既有行索引也有列索引,可以被看做是由Series組成的字典。認識pandas庫文本文件是一種由若干行字符構成的計算機文件,它是一種典型的順序文件。CSV是一種用分隔符分隔的文件格式,因為其分隔符不一定是逗號,所以又被稱為字符分隔文件。文本文件以純文本形式存儲表格數據(數字和文本),它是一種通用、相對簡單的文件格式,最廣泛的應用是在程序之間轉移表格數據,而這些程序本身是在不兼容的格式上進行操作的(往往是私有的、無規(guī)范的格式)。大量程序都支持CSV或其變體,所以CSV或其變體可以作為大多數程序的輸入和輸出格式。讀/寫文本文件CSV文件根據其定義也是一種文本文件。在數據讀取過程中可以使用文本文件的讀取函數對CSV文件進行讀取。同時,如果文本文件是字符分隔文件,那么可以使用讀取CSV文件的函數進行讀取。pandas提供了read_table()函數讀取文本文件,提供了read_csv()函數讀取CSV文件。讀/寫文本文件1.文本文件讀取read_table()函數和read_csv()函數具有許多參數,如果有多個<expression>,那么表達式之間用逗號隔開,基本使用格式如下。讀/寫文本文件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()函數和read_csv()函數的多數參數相同,它們的常用參數及其說明如下表。讀/寫文本文件參數名稱參數說明filepath接收str。表示文件路徑。無默認值sep接收str。表示分隔符。read_csv函數默認為“,”,read_table函數默認為制表符“Tab”header接收int或列表形式的int。表示將某行數據作為列名。默認為infernames接收array。表示列名。無默認值index_col接收int、sequence或False。表示索引列的位置,取值為sequence則代表多重索引。默認為Noneread_table()函數和read_csv()函數的多數參數相同,它們的常用參數及其說明如下表。讀/寫文本文件參數名稱參數說明dtype接收字典形式的列名或typename。表示寫入的數據類型(列名為key,數據格式為values)。默認為Noneengine接收c語言或python語言。表示要使用的數據解析引擎。默認為Nonenrows接收int。要讀取的文件行數。默認為Noneskiprows接收list或int或callable。表示讀取數據時跳過開頭的行數。默認為None某公司收集了音樂行業(yè)的收入信息,并存放至工作表中,其中數據特征主要包括format(銷售形式)、metric(銷售單位)、date(銷售時間)、number_of_records(銷售數量)、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根據音樂行業(yè)收入信息表,分別使用read_table()和read_csv()這兩個函數讀取數據。read_table()函數和read_csv()函數應注意。sep參數是指定文本的分隔符,如果分隔符指定錯誤,那么在讀取數據的時候,每一行數據將連成一片。header參數用于指定列名,如果header參數值是None,那么將會添加一個默認的列名。encoding代表文件的編碼格式,常用的編碼格式有UTF-8、UTF-16、GBK、GB2312、GB18030等。如果編碼指定錯誤,那么數據將無法讀取,IPython解釋器會報解析錯誤。讀/寫文本文件文本文件的存儲和讀取類似,對于結構化數據,可以通過pandas庫中的to_csv()方法實現(xiàn)以CSV文件格式存儲。to_csv()函數同樣具有許多參數,如果有多個<expression>,那么表達式之間用逗號隔開,基本使用格式如下。讀/寫文本文件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()方法的常用參數及其說明如下表。讀/寫文本文件參數名稱參數說明path_or_buf接收str。表示文件路徑。默認為Nonesep接收str。表示分隔符。默認為“,”na_rep接收str。表示缺失值。默認為“”columns接收list。表示寫出的列名。默認為Noneheader接收bool或列表形式的str。表示是否將列名寫出。默認為Trueindex接收bool。表示是否將行名(索引)寫出。默認為Trueindex_label接收sequence或str或false。表示索引名。默認為Nonemode接收特定str。表示數據寫入模式。默認為wencoding接收特定str。表示存儲文件的編碼格式。默認為NoneExcel是微軟公司的辦公軟件MicrosoftOffice的組件之一,它可以對數據進行處理、統(tǒng)計分析等操作,廣泛地應用于管理、財經和金融等眾多領域,其文件保存依照程序版本的不同分為以下兩種。MicrosoftOfficeExcel2007之前的版本(不包括2007)默認保存的文件擴展名為.xls。MicrosoftOfficeExcel2007之后的版本默認保存的文件擴展名為.xlsx。讀/寫Excel文件pandas庫提供了read_excel()函數讀取“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)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 網絡客服工作總結及時解答解決用戶問題
- 食品行業(yè)食品安全培訓總結
- AIDS抗病毒治療課件
- 2025年全球及中國血流動力學監(jiān)測解決方案行業(yè)頭部企業(yè)市場占有率及排名調研報告
- 2025-2030全球新能源交流繼電器行業(yè)調研及趨勢分析報告
- 2025-2030全球剛性墻庇護所行業(yè)調研及趨勢分析報告
- 2025年全球及中國游戲視頻背景音樂行業(yè)頭部企業(yè)市場占有率及排名調研報告
- 2025-2030全球滑移轉向巖石拾取器行業(yè)調研及趨勢分析報告
- 2025-2030全球甲氧氯普胺片行業(yè)調研及趨勢分析報告
- 2025年全球及中國工業(yè)級硅酸鉀行業(yè)頭部企業(yè)市場占有率及排名調研報告
- 充電樁知識培訓課件
- 2025年七年級下冊道德與法治主要知識點
- 2025年交通運輸部長江口航道管理局招聘4人歷年高頻重點提升(共500題)附帶答案詳解
- 老年髖部骨折患者圍術期下肢深靜脈血栓基礎預防專家共識(2024版)解讀
- 偏癱足內翻的治療
- 藥企質量主管競聘
- 信息對抗與認知戰(zhàn)研究-洞察分析
- 心腦血管疾病預防課件
- 手術室??谱o士工作總結匯報
- 2025屆高三聽力技巧指導-預讀、預測
- 蘇州市2025屆高三期初陽光調研(零模)政治試卷(含答案)
評論
0/150
提交評論