Python數據分析與應用(第2版)全書電子教案完整版課件_第1頁
Python數據分析與應用(第2版)全書電子教案完整版課件_第2頁
Python數據分析與應用(第2版)全書電子教案完整版課件_第3頁
Python數據分析與應用(第2版)全書電子教案完整版課件_第4頁
Python數據分析與應用(第2版)全書電子教案完整版課件_第5頁
已閱讀5頁,還剩441頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1熟悉Python數據分析的工具目錄認識數據分析2安裝Python的Anaconda發(fā)行版3掌握Jupyter Notebook常用功能4數據分析是指用適當的分析方法對收集來的大量數據進行分析,提取有用信息和形成結論,對數據加以詳細研究和概括總結的過程。隨著計算機技術的全面發(fā)展,企業(yè)生產、收集、存儲和處理數據的能力大大提高,數據量與日俱增。而在現實生活中,需要將這些繁多、復雜的數據通過統(tǒng)計分析進行提煉,以此研究出數據的發(fā)展規(guī)律,進而幫助企業(yè)管理層做出決策。數據分析的概念廣義的數據分析包括狹義數據分析和數據挖掘。狹義數據分析是指根據分析目的,采用對比分析、分組分析、交叉分析和回歸分析等分析方法,

2、對收集的數據進行處理與分析,提取有價值的信息,發(fā)揮數據的作用,得到一個特征統(tǒng)計量結果的過程。數據分析的概念數據分析的流程 數據分析已經逐漸演化為一種解決問題的過程,甚至是一種方法論。雖然每個公司都會根據自身需求和目標創(chuàng)建最適合的數據分析流程,但是數據分析的核心步驟是一致的。需求分析一詞來源于產品設計,主要是指從用戶提出的需求出發(fā),挖掘用戶內心的真實意圖,并轉化為產品需求的過程。產品設計的第一步就是需求分析,也是最關鍵的一步,因為需求分析決定了產品方向。錯誤的需求分析可能導致產品在實現過程中走入錯誤方向,甚至對企業(yè)造成損失。數據分析中的需求分析是數據分析環(huán)節(jié)的第一步,也是非常重要的一步,決定了后

3、續(xù)的分析方向和方法。數據分析中的需求分析的主要內容是,根據業(yè)務、生產和財務等部門的需要,結合現有的數據情況,提出數據分析需求的整體分析方向、分析內容,最終和需求方達成一致意見。數據分析的流程1.需求分析數據獲取是數據分析工作的基礎,是指根據需求分析的結果提取、收集數據。數據獲取主要有兩種方式:網絡數據與本地數據。網絡數據是指存儲在互聯網中的各類視頻、圖片、語音和文字等信息。本地數據則是指存儲在本地數據庫中的生產、營銷和財務等系統(tǒng)的數據。本地數據按照數據時間又可以劃分為兩部分,分別是歷史數據與實時數據。歷史數據是指系統(tǒng)在運行過程中遺存下來的數據,其數據量隨系統(tǒng)運行時間的增加而增長;實時數據是指最

4、近一個單位時間周期(月、周、日、小時等)內產生的數據。在數據分析過程中,具體使用哪種數據獲取方式,需要依據需求分析的結果而定。數據分析的流程2. 數據獲取數據預處理是指對數據進行數據合并、數據清洗、數據標準化和數據變換,并直接用于分析建模的這一過程的總稱。其中,數據合并可以將多張互相關聯的表格合并為一張;數據清洗可以去除重復、缺失、異常、不一致的數據;數據標準化可以去除特征間的量綱差異;數據變換則可以通過離散化、啞變量處理等技術滿足后期分析與建模的數據要求。在數據分析的過程中,數據預處理的各個過程互相交叉,并沒有明確的先后順序。數據分析的流程3. 數據預處理分析與建模是指通過對比分析、分組分析

5、、交叉分析、回歸分析等分析方法,以及聚類模型、分類模型、關聯規(guī)則、智能推薦等模型與算法,發(fā)現數據中有價值的信息,并得出結論的過程。在數據分析過程中,具體使用哪種數據獲取方式,需要依據需求分析的結果而定。分析與建模的方法按照目標不同可以分為幾大類。如果分析目標是描述客戶行為模式的,那么可以采用描述型數據分析方法,同時還可以考慮關聯規(guī)則、序列規(guī)則和聚類模型等。如果分析目標是量化未來一段時間內某個事件發(fā)生概率的,那么可以使用兩大預測分析模型,即分類預測模型和回歸預測模型。在常見的分類預測模型中,目標特征通常為二元數據,如欺詐與否、流失與否、信用好壞等。在回歸預測模型中,目標特征通常為連續(xù)型數據,常見

6、的有股票價格預測等。數據分析的流程4. 分析與建模模型評價是指對于已經建立的一個或多個模型,根據其模型的類別,使用不同的指標評價模型性能優(yōu)劣的過程。常用的聚類模型評價指標有ARI評價法(蘭德系數)、AMI評價法(互信息)、V-measure評分、FMI評價法和輪廓系數等。常用的分類模型評價指標有準確率(Accuracy)、精確率(Precision)、召回率(Recall)、F1值(F1 Value)、ROC和AUC等。常用的回歸模型評價指標有平均絕對誤差、均方誤差、中值絕對誤差和可解釋方差值等。模型優(yōu)化則是指模型性能在經過模型評價后已經達到了要求,但在實際生產環(huán)境應用過程中,發(fā)現模型的性能并

7、不理想,繼而對模型進行重構與優(yōu)化的過程。多數情況下,模型優(yōu)化和分析與建模的過程基本一致。數據分析的流程5. 模型評價與優(yōu)化部署是指將數據分析結果與結論應用至實際生產系統(tǒng)的過程。根據需求的不同,部署階段可以是一份包含了現狀具體整改措施的數據分析報告,也可以是將模型部署在整個生產系統(tǒng)的解決方案。在多數項目中,數據分析師提供的是一份數據分析報告或一套解決方案,實際執(zhí)行與部署的是需求方。數據分析的流程6. 部署 企業(yè)使用數據分析解決不同的問題,實際應用的數據分析場景主要分為客戶分析、營銷分析、社交媒體分析、網絡安全、設備管理、交通物流分析和欺詐行為檢測7類??蛻舴治鲋饕歉鶕蛻舻幕緮祿畔⑦M行商業(yè)

8、行為分析,首先界定目標客戶,根據客戶的需求、目標客戶的性質、所處行業(yè)的特征和客戶的經濟狀況等基本信息,使用統(tǒng)計分析方法和預測驗證法分析目標客戶,提高銷售效率。其次了解客戶的采購過程,根據客戶采購類型、采購性質進行分類分析,制定不同的營銷策略。根據已有的客戶特征進行客戶特征分析、客戶忠誠度分析、客戶注意力分析、客戶營銷分析和客戶收益分析。通過有效的客戶分析能夠掌握客戶的具體行為特征,將客戶細分,使得運營策略達到最優(yōu),提升企業(yè)整體效益等。了解數據分析應用場景1.客戶分析(Customer Analytics)營銷分析囊括了產品分析、價格分析、渠道分析、廣告與促銷分析這4類分析。產品分析主要是競爭產

9、品分析,通過對競爭產品的分析制定自身產品策略。價格分析又可以分為成本分析和售價分析。成本分析的目的是降低不必要的成本;售價分析的目的是制定符合市場的價格。渠道分析是指對產品的銷售渠道進行分析,確定最優(yōu)的渠道配比。廣告與促銷分析則能夠結合客戶分析,實現銷量的提升、利潤的增加。了解數據分析應用場景2. 營銷分析(Sales and Marketing Analytics)社交媒體分析是以不同的社交媒體渠道生成的內容為基礎,實現不同社交媒體的用戶分析、訪問分析和互動分析等。用戶分析主要根據用戶注冊信息、登錄平臺的時間點和平時發(fā)表的內容等用戶數據,分析用戶個人畫像和行為特征。訪問分析則是通過用戶平時訪

10、問的內容分析用戶的興趣愛好,進而分析潛在的商業(yè)價值。互動分析根據互相關注對象的行為預測該對象未來的某些行為特征。社交媒體分析還能為情感和輿情監(jiān)督提供豐富的資料。了解數據分析應用場景3. 社交媒體分析(Social Media Analytics)大規(guī)模網絡安全事件的發(fā)生,例如,2017年5月席卷全球的WannaCry病毒,讓企業(yè)意識到網絡攻擊發(fā)生時預先快速識別的重要性。傳統(tǒng)的網絡安全主要依靠靜態(tài)防御,處理病毒的主要流程是發(fā)現威脅、分析威脅和處理威脅,這種情況下,往往只在威脅發(fā)生以后系統(tǒng)才能做出反應。新型的病毒防御系統(tǒng)可使用數據分析技術,建立潛在攻擊識別分析模型,監(jiān)測大量網絡活動數據和相應的訪問

11、行為,識別可能進行入侵的可疑模式,做到未雨綢繆。了解數據分析應用場景4. 網絡安全(Cyber Security)設備管理同樣是企業(yè)關注的重點。設備維修一般采用標準修理法、定期修理法和檢查后修理法等方法。其中,標準修理法可能會造成設備過剩修理,修理費用高;雖然檢查后修理法解決了修理費用成本問題,但是修理前的準備工作繁多,設備的停歇時間過長。目前企業(yè)能夠通過物聯網技術收集和分析設備上的數據流,包括連續(xù)用電、零部件溫度、環(huán)境濕度和污染物顆粒等多種潛在特征,建立設備管理模型,從而預測設備故障,合理安排預防性的維護,以確保設備正常工作,降低因設備故障帶來的安全風險。了解數據分析應用場景5. 設備管理(

12、Plant and Facility Management)物流是物品從供應地向接收地的實體流動,是將運輸、儲存、裝卸搬運、包裝、流通加工、配送和信息處理等功能有機結合起來從而實現用戶要求的過程。用戶可以通過業(yè)務系統(tǒng)和GPS定位系統(tǒng)獲得數據,使用數據構建交通狀況預測分析模型,有效預測實時路況、物流狀況、車流量、客流量和貨物吞吐量,進而提前補貨,制定庫存管理策略。了解數據分析應用場景6. 交通物流分析(Transport and Logistics Analytics)身份信息泄露及盜用事件逐年增長,隨之而來的是欺詐行為和交易的增多。公安機關、各大金融機構、電信部門可利用用戶基本信息、用戶交易信

13、息和用戶通話短信信息等數據,識別可能發(fā)生的潛在欺詐交易,做到提前預防、未雨綢繆。以大型金融機構為例,通過分類模型分析方法對非法集資和洗錢的邏輯路徑進行分析,找到其行為特征。聚類模型分析方法可以分析相似價格的運動模式。例如,對股票進行聚類,可能發(fā)現關聯交易及內幕交易的可疑信息。關聯規(guī)則分析方法可以監(jiān)控多個用戶的關聯交易行為,為發(fā)現跨賬號協同的金融詐騙行為提供依據。了解數據分析應用場景7. 欺詐行為檢測(Fraud Detection)1熟悉Python數據分析的工具目錄認識數據分析2安裝Python的Anaconda發(fā)行版3掌握Jupyter Notebook常用功能4目前主流的數據分析語言主要

14、有Python、R、MATLAB這3種。其中,Python具有豐富和強大的庫,同時Python常被稱為膠水語言,能夠將使用其他語言制作的各種模塊(尤其是C/C+)輕松地連接在一起,是一門更易學、更嚴謹的程序設計語言。R語言通常用于統(tǒng)計分析、繪圖。R是屬于GNU系統(tǒng)的一個自由、免費、源代碼開放的軟件。MATLAB的作用是進行矩陣運算、繪制函數與數據、實現算法、創(chuàng)建用戶界面和連接其他編程語言的程序等,其主要應用于工程計算、控制設計、信號處理與通信、圖像處理、信號檢測、金融建模設計與分析等領域。了解數據分析常用工具 Python、R、MATLAB這3種語言均可以進行數據分析。表1 1從語言學習難易程

15、度、使用場景、第三方支持、流行領域和軟件成本5方面比較了Python、R、MATLAB這3種數據分析工具。了解數據分析常用工具PythonRMATLAB語言學習難易程度接口統(tǒng)一,學習曲線平緩接口眾多,學習曲線陡峭自由度大,學習曲線較為平緩使用場景數據分析、機器學習、矩陣運算、科學數據可視化、數字圖像處理等統(tǒng)計分析、機器學習、科學數據可視化等矩陣運算、數值分析、科學數據可視化、機器學習、符號計算、數字圖像處理、數字信號處理等第三方支持擁有大量的第三方庫,能夠簡便地調用C、C+、Fortran、Java等其他程序語言擁有大量的包,能夠調用C、C+、Fortran、Java等其他程序語言擁有大量專業(yè)

16、的工具箱,在新版本中加入了對C、C+、Java的支持流行領域工業(yè)界學術界工業(yè)界學術界工業(yè)界學術界軟件成本開源免費開源免費商業(yè)收費語法簡單精練。對于初學者來說,比起其他編程語言,Python更容易上手。含有大量功能強大的庫。結合在編程方面的強大實力,可以只使用Python這一種語言去構建以數據為中心的應用程序。功能強大。從特性觀點來看,Python是一個混合體。豐富的工具集使Python介于傳統(tǒng)的腳本語言和系統(tǒng)語言之間。Python不僅具備所有腳本語言簡單和易用的特點,而且提供了編譯語言所具有的高級軟件工程工具。研究、原型構建和構建生產系統(tǒng)。研究人員和工程技術人員使用同一種編程工具,會給企業(yè)帶來

17、非常顯著的組織效益,并降低企業(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是Numerical Python的簡稱,是一個Python科學計算的基礎包。NumPy主

18、要提供了以下內容。快速高效的多維數組對象ndarray。對數組執(zhí)行元素級計算和直接對數組執(zhí)行數學運算的函數。讀/寫硬盤上基于數組的數據集的工具。線性代數運算、傅里葉變換和隨機數生成的功能。將C、C+、Fortran代碼集成到Python的工具。了解Python數據分析常用類庫1. NumPy除了為Python提供快速的數組處理能力外,NumPy在數據分析方面還有另外一個主要作用,即作為算法之間傳遞數據的容器。對于數值型數據,使用NumPy數組存儲和處理數據要比使用內置的Python數據結構高效得多。此外,由低級語言(如C和Fortran)編寫的庫可以直接操作NumPy數組中數據,無須進行任何數

19、據復制工作。了解Python數據分析常用類庫SciPy是基于Python的開源代碼,是一組專門解決科學計算中各種標準問題域的模塊的集合,特別是與NumPy、Matplotlib和pandas這些核心包一起使用時。SciPy主要包含了8個模塊,不同的模塊有不同的應用,如用于插值、積分、優(yōu)化、處理圖像和特殊函數等。了解數據分析應用場景2. SciPy模塊名稱簡介egrate數值積分和微分方程求解器scipy.linalg擴展了由numpy.linalg提供的線性代數求解和矩陣分解功能scipy.optimize函數優(yōu)化器(最小化器)以及根查找算法scipy.signal信號處理工具scipy.sp

20、arse稀疏矩陣和稀疏線性系統(tǒng)求解器scipy.specialSPECFUN這是一個實現了許多常用數學函數(如伽馬函數)的Fortran庫的包裝器scipy.stats檢驗連續(xù)和離散概率分布(如密度函數、采樣器、連續(xù)分布函數等)的函數與方法、各種統(tǒng)計檢驗的函數與方法,以及各類描述性統(tǒng)計的函數與方法scipy.weave利用內聯C+代碼加速數組計算的工具pandas是Python的數據分析核心庫,最初被作為金融數據分析工具而開發(fā)出來。pandas為時間序列分析提供了很好的支持,它提供了一系列能夠快速、便捷地處理結構化數據的數據結構和函數。Python之所以成為強大而高效的數據分析環(huán)境與它息息相關

21、。pandas兼具NumPy高性能的數組計算功能以及電子表格和關系型數據庫(如SQL)靈活的數據處理功能。它提供了復雜精細的索引功能,以便完成重塑、切片與切塊、聚合和選取數據子集等操作。pandas將是本書中使用的主要工具。了解數據分析應用場景3. pandasMatplotlib是較為流行的用于繪制數據圖表的Python庫,是Python的2D繪圖庫。Matplotlib最初由約翰亨特(John D.Hunter,JDH)創(chuàng)建,目前由一個龐大的開發(fā)團隊維護。Matplotlib的操作比較容易,用戶只需用幾行代碼即可生成直方圖、功率譜圖、條形圖、錯誤圖和散點圖等圖形。Matplotlib提供了

22、pylab的模塊,其中包括了NumPy和pyplot中許多常用的函數,方便用戶快速進行計算和繪圖。Matplotlib與IPython的結合,提供了一種非常好用的交互式數據繪圖環(huán)境。繪制的圖表也是交互式的,讀者可以利用繪圖窗口中工具欄中的相應工具放大圖表中的某個區(qū)域,或對整個圖表進行平移瀏覽。了解數據分析應用場景4. Matplotlibseaborn是基于Matplotlib的圖形可視化Python庫,它提供了一種高度交互式界面,便于用戶能夠做出各種有吸引力的統(tǒng)計圖表。seaborn是在Matplotlib的基礎上進行了更高級的API封裝,使得作圖更加容易。seaborn不需要了解大量的底層

23、代碼,即可使圖形變得精致。在大多數情況下,使用seaborn能做出很具有吸引力的圖,而使用Matplotlib能制作具有更多特色的圖。因此,可將seaborn視為Matplotlib的補充,而不是替代物。同時,seaborn能高度兼容NumPy與pandas數據結構以及scipy與statsmodels等統(tǒng)計模式,可以在很大程度上幫助用戶實現數據可視化。了解數據分析應用場景5. seabornEcharts是一個由百度開源的數據可視化工具,憑借著良好的交互性,精巧的圖表設計,得到了眾多開發(fā)者的認可。而Python是一門富有表達力的語言,很適合用于數據處理。pyecharts是Python與Ec

24、harts的結合。pyecharts可以展示動態(tài)交互圖,對于展示數據更方便,當鼠標懸停在圖上時,即可顯示數值、標簽等。pyecharts支持主流Notebook環(huán)境,如Jupyter Notebook、JupyterLab等;可輕松集成至Flask、Django等主流Web框架;高度靈活的配置項,可輕松搭配出精美的圖表。pyecharts囊括了30多種常見圖表,如Bar(柱形圖/條形圖)、Boxplot(箱形圖)、Funnel(漏斗圖)、Gauge(儀表盤)、Graph(關系圖)、HeatMap(熱力圖)、Radar(雷達圖)、Sankey(?;鶊D)、Scatter(散點圖)、WordClou

25、d(詞云圖)等。了解數據分析應用場景6. pyechartsscikit-learn是一個簡單有效的數據挖掘和數據分析工具,可以供用戶在各種環(huán)境下重復使用。scikit-learn建立在NumPy、SciPy和Matplotlib基礎之上,對一些常用的算法方法進行了封裝。目前,scikit-learn的基本模塊主要有數據預處理、模型選擇、分類、聚類、數據降維和回歸6個。在數據量不大的情況下,scikit-learn可以解決大部分問題。對算法不精通的用戶在執(zhí)行建模任務時,并不需要自行編寫所有的算法,只需要簡單地調用scikit-learn庫里的模塊即可。了解數據分析應用場景7. scikit-l

26、earn1熟悉Python數據分析的工具目錄認識數據分析2安裝Python的Anaconda發(fā)行版3掌握Jupyter Notebook常用功能4Python擁有NumPy、SciPy、pandas、Matplotlib、seaborn、pyecharts和scikit-learn等功能齊全、接口統(tǒng)一的庫,能為數據分析工作提供極大的便利。庫的管理和版本問題,使得數據分析人員并不能夠專注于數據分析,而是將大量的時間花費在與環(huán)境配置相關的問題上?;谏鲜鲈?,Anaconda發(fā)行版應運而生。Anaconda發(fā)行版Python預裝了150個以上的常用Packages,囊括了數據分析常用的NumPy、

27、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

28、、Mac;支持Python 2.6、2.7、3.4、3.5、3.6和3.8等,可自由切換。了解Python的Anaconda發(fā)行版進入Anaconda官方網站,下載Windows系統(tǒng)中的Anaconda安裝包,選擇Python 3.8版本。安裝Anaconda的具體步驟如下。單擊已下載好的Anaconda安裝包,并單擊“Next”按鈕進入下一步。在Windows系統(tǒng)中安裝Anaconda單擊“I Agree”按鈕,同意上述協議并進入下一步。在Windows系統(tǒng)中安裝Anaconda選擇圖中“All Users(requires admin privileges)”單選按鈕,單擊“Next”進入

29、下一步。在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安裝包所在

30、的文件路徑。在Linux系統(tǒng)中安裝Anaconda輸入命令“bash Anaconda3-2020.11-Linux-x86_64.sh”,進行安裝。在Linux系統(tǒng)中安裝Anaconda按下鍵盤中的“Enter”鍵后,出現軟件協議相關內容,在閱讀時連續(xù)按“Enter”鍵讀取全文,在協議末尾會讓讀者確認是否同意以上協議,輸入“yes”,并按下鍵盤中的“Enter”鍵確認同意。在Linux系統(tǒng)中安裝Anaconda同意協議后,默認安裝路徑在用戶home目錄下(/home/python/anaconda3),安裝路徑設置完成后,軟件即可開始安裝。在Linux系統(tǒng)中安裝Anaconda在安裝過程快結

31、束時,將提示讀者是否將Anaconda的安裝路徑加入到系統(tǒng)當前用戶的環(huán)境變量中,輸入“yes”,并按下鍵盤中的“Enter”鍵確認同意。在Linux系統(tǒng)中安裝Anaconda軟件安裝完成后使用Linux系統(tǒng)的文本編輯器VIM或gedit查看當前用戶的環(huán)境變量。輸入命令“vi /home/python/.bashrc”來查看文檔,出現界面,表示環(huán)境變量配置完成,說明Anaconda已經完成安裝。如果未配置完成,那么需要在.bashrc文檔末尾添加Anaconda安裝目錄的環(huán)境變量。在Linux系統(tǒng)中安裝Anaconda1熟悉Python數據分析的工具目錄認識數據分析2安裝Python的Anaco

32、nda發(fā)行版3掌握Jupyter Notebook常用功能4jupyter Notebook(此前被稱為IPython Notebook)是一個交互式筆記本,支持運行40多種編程語言,其本質上是一個支持實時代碼、數學方程、可視化和Markdown的Web應用程序。對于數據分析,Jupyter Notebook最大的優(yōu)點是可以重現整個分析過程,并將說明文字、代碼、圖表、公式和結論都整合在一個文檔中。用戶可以通過電子郵件、Dropbox、GitHub和Jupyter Notebook Viewer將分析結果分享給其他人。掌握Jupyter Notebook常用功能 在安裝完成Python、配置好環(huán)

33、境變量并安裝了Jupyter Notebook后,在Windows系統(tǒng)下的命令行或在Linux系統(tǒng)下的終端輸入命令“jupyter notebook”,即可啟動Jupyter Notebook。掌握Jupyter Notebook的基本功能1.啟動Jupyter Notebook 打開Jupyter Notebook以后會在系統(tǒng)默認的瀏覽器中出現圖1 16的界面。單擊右上方的“New”下拉按鈕,出現下拉列表。掌握Jupyter Notebook的基本功能2.新建一個Notebook 在下拉列表中選擇需要創(chuàng)建的Notebook類型。其中,“Text File”為純文本型,“Folder”為文件夾

34、,“Python 3”表示Python運行腳本,灰色字體表示不可用項目。選擇“Python 3”選項,進入Python腳本編輯界面。掌握Jupyter Notebook的基本功能 Jupyter Notebook中的Notebook文檔由一系列單元(Cell)構成 ,主要有以下兩種形式的單元,在Jupyter Notebook中的形式。掌握Jupyter Notebook的基本功能3. Jupyter Notebook的界面及其構成代碼單元。代碼單元是讀者編寫代碼的地方,通過按“Shift+Enter”組合鍵運行代碼,其結果顯示在本單元下方。代碼單元左邊有“In :”編號,方便使用者查看代碼的

35、執(zhí)行次序。Markdown單元。Markdown單元可對文本進行編輯,采用Markdown的語法規(guī)范,可以設置文本格式,插入鏈接、圖片甚至數學公式。同樣,按“Shift+Enter”組合鍵可運行Markdown單元,顯示格式化的文本。掌握Jupyter Notebook的基本功能 Jupyter Notebook編輯界面類似于Linux的VIM編輯器界面,在Notebook中也有兩種模式,其模式如下。編輯模式。用于編輯文本和代碼。選中單元并按“Enter”鍵進入編輯模式,此時單元左側顯示綠色豎線。命令模式。用于執(zhí)行鍵盤輸入的快捷命令。通過按“Esc”鍵進入命令模式,此時單元左側顯示藍色豎線。掌

36、握Jupyter Notebook的基本功能 如果要使用快捷鍵,那么首先按“Esc”鍵進入命令模式,然后按相應的鍵實現對文檔的操作。例如,切換到代碼單元按“Y”鍵,切換到Markdown單元按“M”鍵,在本單元的下方增加一單元按“B”鍵,查看所有快捷命令按“H”鍵。掌握Jupyter Notebook的基本功能 在Jupyter Notebook中,可以使用Markdown進行文本標記,以便用戶查看。同時Jupyter Notebook還可以將Notebook導出形成HTML、PDF等多種格式。Markdown是一種可以使用普通文本編輯器編寫的標記語言,通過簡單的標記語法,便可以使普通文本內容

37、具有一定的格式。Jupyter Notebook的Markdown單元功能較多,下面將從標題、列表、字體、表格和數學公式編輯5個方面進行介紹。掌握Jupyter Notebook的高級功能1. Markdown標題是標明文章和作品等內容的簡短語句。讀者寫報告或寫論文時,標題是不可或缺的,尤其是論文的章節(jié)等,需要使用不同級別的標題。一般使用Markdown中的類Atx形式進行標題的排版,在首行前加一個“#”字符代表一級標題,加兩個“#”字符代表二級標題,以此類推。掌握Jupyter Notebook的高級功能(1)標題列表是一種由數據項構成的有限序列,即按照一定的線性順序排列而成的數據項的集合。

38、列表一般分為兩種:一種是無序列表,使用一些圖標標記,沒有序號,沒有排列順序;另一種是有序列表,使用數字標記,有排列順序。Markdown對于無序列表,可使用星號、加號或減號作為列表標記;Markdown對于有序列表,則使用數字加“.”和“ ”(一個空格)表示掌握Jupyter Notebook的高級功能(2)列表文檔中為了凸顯部分內容,一般對文字使用加粗或斜體格式,使得該部分內容變得更加醒目。對于Markdown排版工具而言,通常使用星號“*”和下劃線“_”作為標記字詞的符號。前后有兩個星號或下劃線表示加粗,前后有3個星號或下劃線表示斜體。掌握Jupyter Notebook的高級功能(3)字

39、體使用Markdown同樣也可以繪制表格。代碼的第一行表示表頭,第二行分隔表頭和主體部分,從第三行開始,每一行代表一個表格行。列與列之間用符號“”隔開,表格每一行的兩邊也要有符號“”掌握Jupyter Notebook的高級功能(4)表格LaTeX是寫科研論文的必備工具,不但能實現嚴格的文檔排版,而且能編輯復雜的數學公式。在Jupyter Notebook的Markdown單元中也可以使用LaTeX來插入數學公式。在文本行中插入數學公式,應使用兩個“$”符號,如質能方程“$E = mc2$”。如果要插入一個數學區(qū)塊,那么使用兩個“$”符號,如使用“$ z = fracxy $”表示式。掌握Ju

40、pyter Notebook的高級功能(5)數學公式編輯Notebook還有一個強大的特性,就是導出功能,可以將Notebook導出為多種格式,如HTML、Markdown、reST、PDF(通過LaTeX)等格式。其中,導出為PDF功能,可以讓讀者不用寫LaTeX即可創(chuàng)建漂亮的PDF文檔。讀者還可以將Notebook作為網頁發(fā)布在自己的網站上。甚至,可以導出為reST格式,作為軟件庫的文檔。導出功能可以依次選擇“File”“Download as”級聯菜單中的命令實現。掌握Jupyter Notebook的高級功能2. 導出功能本章主要介紹了數據分析的概念、流程、應用場景和常用工具,闡述了使

41、用Python進行數據分析的優(yōu)勢,列舉說明了Python數據分析重要類庫的功能。緊接著闡述了Anaconda的特點,實現了在Windows和Linux兩個系統(tǒng)中安裝Anaconda數據分析環(huán)境。最后介紹了Python數據分析工具Jupyter Notebook的常用功能。小結NumPy數值計算基礎1掌握NumPy矩陣與通用函數目錄掌握NumPy數組對象ndarray2利用NumPy進行統(tǒng)計分析3NumPy提供了兩種基本的對象。ndarray(N-dimensional Array Object):存儲單一數據類型的多維數組。ufunc(Universal Function Object):能夠

42、對數組進行處理的函數。創(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é)),一個

43、元素類型為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=

44、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接收數據類型,表示輸出數組的類型,

45、默認為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.linspac

46、e(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、ey

47、e、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中,所有數組的數據類型是同質的,即數組中的所有元素類型必須是一致的。將元素類型保持一致可以更容易確定該

48、數組所需要的存儲空間。創(chuàng)建數組對象3. 數組數據類型NumPy的基本數據類型及其取值范圍如下表。創(chuàng)建數組對象類型描述bool用一位存儲的布爾類型(值為True或False)inti由所在平臺決定其精度的整數(一般為int32或int64)int8整數,范圍為128127int16整數,范圍為32 76832 767int32整數,范圍為2312321int64整數,范圍為2632631uint8無符號整數,范圍為0255uint16無符號整數,范圍為065 535uint32無符號整數,范圍為02321NumPy的基本數據類型及其取值范圍(續(xù)表)。創(chuàng)建數組對象類型描述uint64無符號整數,范

49、圍為02641float16半精度浮點數(16位),其中用1位表示正負號,用5位表示指數,用10位表示尾數float32單精度浮點數(32位),其中用1位表示正負號,用8位表示指數,用23位表示尾數float64或float雙精度浮點數(64位),其中用1位表示正負號,用11位表示指數,用52位表示尾數complex64復數,分別用兩個32位浮點數表示實部和虛部complex128或complex復數,分別用兩個64位浮點數表示實部和虛部uint32無符號整數,范圍為02321手動創(chuàng)建數組往往很難達到數量要求,NumPy提供了強大的生成隨機數的功能。然而,真正的隨機數很難獲得,在實際中使用的都

50、是偽隨機數。在大部分情況下,偽隨機數就能滿足獲取的需求。當然,某些特殊情況除外,如進行高精度的模擬實驗。對于NumPy,與隨機數相關的函數都在random模塊中,其中包括了可以生成服從多種概率分布隨機數的函數。生成隨機數random函數是最常見的生成隨機數的方法,random函數的基本使用格式如下。參數size接收int,表示返回的隨機浮點數大小,默認為None。生成隨機數numpy.random.random(size=None)rand函數可以生成服從均勻分布的隨機數,其使用格式如下。參數d0, d1, ., dn接收int,表示返回數組的維度必須是非負數。如果沒有給出參數,那么返回單個P

51、ython浮點數,無默認值。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或整

52、數元組。表示輸出形狀。默認為Nonedtype接收數據類型。表示輸出數組的類型。默認為int在random模塊中,其他常用于生成隨機數的函數如下表。生成隨機數函數說明seed確定隨機數生成器的種子permutation返回一個序列的隨機排列或返回一個隨機排列的范圍Shuffle對一個序列進行隨機排序binomial產生二項分布的隨機數normal產生正態(tài)(高斯)分布的隨機數beta產生beta分布的隨機數chisquare產生卡方分布的隨機數gamma產生gamma分布的隨機數uniform產生在0, 1中均勻分布的隨機數NumPy通常以提供高效率的數組著稱,這主要歸功于索引的易用性。1. 一

53、維數組的索引一維數組的方法很簡單,與Python中的list的索引方法一致。2. 多維數組的索引多維數組的每一個維度都有一個索引,各個維度的索引之間用逗號隔開。多維數組同樣也可以使用整數序列和布爾值索引進行訪問。通過索引訪問數組在NumPy中,常用reshape函數改變數組的“形狀”,即改變數組的維度。reshape函數的基本使用格式如下。reshape函數在改變原始數據的形狀的同時不改變原始數據的值。如果指定的維度和數組的元素數目不吻合,那么函數將拋出異常。變換數組的形態(tài)numpy.reshape(a, newshape, order=C)reshape函數的常用參數及其說明如下表。在Num

54、Py中,可以使用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對

55、象構成的元組作為參數,傳給hstack函數??v向組合同樣是將ndarray對象構成的元組作為參數,傳給vstack函數。concatenate函數也可以實現數組的橫向組合和縱向組合,其中當參數axis=1時,數組按照橫向組合,當參數axis=0時,數組按照縱向組合。變換數組的形態(tài)除了對數組進行橫向和縱向的組合之外,還可以對數組進行分割。NumPy提供了hsplit、vsplit、dsplit和split函數,可以將數組分割成相同大小的子數組,也可以指定原數組中需要分割的位置。hsplit函數:可以對數組進行橫向分割,以ndarray對象構成的元組作為參數。vsplit函數:可以對數組進行縱向分

56、割,以ndarray對象構成的元組作為參數。split函數:同樣可以實現數組分割。當參數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)建矩

57、陣。創(chuàng)建NumPy矩陣當使用mat函數創(chuàng)建矩陣時,如果輸入matrix或ndarray對象,那么不會創(chuàng)建相應副本。因此,調用mat函數和調用matrix(data, copy=False)函數等價。在大多數情況下,用戶會根據小的矩陣來創(chuàng)建大的矩陣,即將小矩陣組合成大矩陣。在NumPy中,可以使用bmat分塊矩陣(block matrix)函數實現。在NumPy中,矩陣計算是針對整個矩陣中的每個元素進行的。與使用for循環(huán)相比,其在運算速度上更快。創(chuàng)建NumPy矩陣除了能夠實現各類運算外,矩陣還有其特有的屬性,如下表。創(chuàng)建NumPy矩陣屬性名稱屬性說明T返回自身的轉置H返回自身的共軛轉置I返回自

58、身的逆矩陣A返回自身數據的二維數組的一個視圖(沒有做任何的復制)常用的ufunc函數運算有四則運算、比較運算和邏輯運算等。四則運算:ufunc函數支持全部的四則運算,并且保留習慣的運算符,和數值運算的使用方式一樣,但是需要注意的是,操作的對象是數組。數組間的四則運算表示對每個數組中的元素分別進行四則運算,因此進行四則運算的兩個數組的形狀必須相同。比較運算:在ufunc函數中也支持完整的比較運算:、=、=、!=。比較運算返回的結果是一個布爾數組,其每個元素為數組對應元素的比較結果。邏輯運算:在NumPy邏輯運算中,numpy.all函數表示邏輯and,numpy.any函數表示邏輯or。掌握uf

59、unc函數1. 常用的ufunc函數運算廣播(Broadcasting)是指不同形狀的數組之間執(zhí)行算術運算的方式。當使用ufunc函數進行數組計算時,ufunc函數會對兩個數組的對應元素進行計算。進行這種計算的前提是兩個數組的shape一致。如果兩個數組的shape不一致,那么NumPy會實行廣播機制。NumPy中的廣播機制并不容易理解,特別是在進行高維數組計算的時候。掌握ufunc函數2. ufunc函數的廣播機制為了更好地使用廣播機制,需要遵循以下4個原則。讓所有的輸入數組向其中shape最長的數組看齊,shape中不足的部分通過在前面加1補齊。輸出數組的shape是輸入數組shape的各

60、個軸上的最大值。如果輸入數組的某個軸和輸出數組的對應軸的長度相同或其長度為1,那么這個數組能夠用于計算,否則系統(tǒng)將會出錯。當輸入數組的某個軸的長度為1時,沿著此軸運算時使用此軸上的第一組值。掌握ufunc函數1掌握NumPy矩陣與通用函數目錄掌握NumPy數組對象ndarray2利用NumPy進行統(tǒng)計分析3NumPy的文件讀/寫主要有二進制的文件讀/寫和文件列表形式的數據讀/寫兩種形式。NumPy提供了若干函數,可以將結果保存到二進制或文本文件中。除此之外,NumPy還提供了許多從文件讀取數據并將其轉換為數組的方法。讀/寫文件save函數以二進制的格式保存數據,load函數從二進制的文件中讀取

溫馨提示

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

最新文檔

評論

0/150

提交評論