版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Python數(shù)據(jù)分析Python數(shù)據(jù)分析基礎(chǔ)第一章【ch01】Python數(shù)據(jù)分析基礎(chǔ).pptx【ch02】Python數(shù)據(jù)分析開(kāi)發(fā)環(huán)境.pptx【ch03】數(shù)組計(jì)算庫(kù)NumPy.pptx【ch04】數(shù)據(jù)分析庫(kù)Pandas.pptx【ch05】數(shù)據(jù)可視化庫(kù)Matplotlib.pptx【ch06】數(shù)據(jù)分析庫(kù)SciPy.pptx全套可編輯PPT課件01數(shù)據(jù)分析基礎(chǔ)數(shù)據(jù)分析基礎(chǔ)01數(shù)據(jù)分析方法數(shù)據(jù)分析的目的是把隱藏在一大批看起來(lái)雜亂無(wú)章的數(shù)據(jù)中的信息集中和提煉出來(lái),從而找出所研究對(duì)象的內(nèi)在規(guī)律。在實(shí)際應(yīng)用中,數(shù)據(jù)分析可幫助人們做出判斷,以便采取適當(dāng)?shù)男袆?dòng)。數(shù)據(jù)分析是有組織、有目的地收集數(shù)據(jù)、分析數(shù)據(jù),使之成為信息的過(guò)程。數(shù)據(jù)分析基礎(chǔ)01圖1-1顯示了數(shù)據(jù)分析的基本流程。其中,數(shù)據(jù)分析方法是數(shù)據(jù)分析的核心。在統(tǒng)計(jì)學(xué)領(lǐng)域,有些人將數(shù)據(jù)分析劃分為描述性統(tǒng)計(jì)分析、探索性數(shù)據(jù)分析及驗(yàn)證性數(shù)據(jù)分析。其中,探索性數(shù)據(jù)分析側(cè)重于在數(shù)據(jù)中發(fā)現(xiàn)新的特征,而驗(yàn)證性數(shù)據(jù)分析則側(cè)重于已有假設(shè)的證實(shí)或證偽。數(shù)據(jù)分析基礎(chǔ)01定性數(shù)據(jù)分析定性數(shù)據(jù)分析又稱為定性資料分析、定性研究或定性研究資料分析。是對(duì)諸如詞語(yǔ)、照片、觀察結(jié)果之類的非數(shù)值型數(shù)據(jù)(或者說(shuō)資料)的分析。2探索性數(shù)據(jù)分析探索性數(shù)據(jù)分析是為了形成值得假設(shè)的檢驗(yàn)而對(duì)數(shù)據(jù)進(jìn)行分析的一種方法。是對(duì)傳統(tǒng)統(tǒng)計(jì)學(xué)假設(shè)檢驗(yàn)手段的補(bǔ)充。1數(shù)據(jù)分析基礎(chǔ)01在線數(shù)據(jù)分析在線數(shù)據(jù)分析也稱為聯(lián)機(jī)分析處理,用來(lái)處理用戶的在線請(qǐng)求,對(duì)響應(yīng)時(shí)間的要求比較高(通常不超過(guò)若干秒鐘)。4離線數(shù)據(jù)分析離線數(shù)據(jù)分析用于較復(fù)雜和耗時(shí)的數(shù)據(jù)分析與處理,一般通常構(gòu)建在云計(jì)算平臺(tái)上。如開(kāi)源的HDFS文件系統(tǒng)和MapReduce運(yùn)算框架。3數(shù)據(jù)分析基礎(chǔ)01數(shù)據(jù)分析的分類按分析的方法和目的分類描述性分析:對(duì)表達(dá)這是什么情況很有效,但不能解釋某種結(jié)果發(fā)生的原因或未來(lái)會(huì)發(fā)生的事情。預(yù)測(cè)性分析:對(duì)數(shù)據(jù)特征和變量的關(guān)系進(jìn)行描述,基于過(guò)去的數(shù)據(jù)對(duì)未來(lái)進(jìn)行預(yù)測(cè)。預(yù)測(cè)性分析的一般步驟是先確定變量之間的聯(lián)系,然后基于這種聯(lián)系預(yù)測(cè)另一種現(xiàn)象出現(xiàn)的可能性,如用戶看到啤酒后順便拿上尿布的可能性。規(guī)范性分析:偏向于數(shù)據(jù)挖掘,通過(guò)實(shí)驗(yàn)等方式對(duì)多個(gè)變量進(jìn)行處理,達(dá)到預(yù)期目標(biāo),在得到預(yù)期結(jié)果后,就施行實(shí)驗(yàn)環(huán)境下的條件,最終達(dá)到商業(yè)目標(biāo)。數(shù)據(jù)分析基礎(chǔ)01按分析方法,以及收集和分析的數(shù)據(jù)類型分類定性分析(非結(jié)構(gòu)化數(shù)據(jù)):目的是深入了解某種現(xiàn)象出現(xiàn)的根本原因和誘因,是分析的最初階段,也是探索性研究的有效工具。它是探索初期識(shí)別是什么的問(wèn)題的一個(gè)步驟。定量分析(結(jié)構(gòu)化數(shù)據(jù)):通過(guò)統(tǒng)計(jì)、數(shù)學(xué)或計(jì)算的方法或方式對(duì)現(xiàn)象進(jìn)行系統(tǒng)的實(shí)證研究。定量分析屬于研究階段,是一個(gè)分析過(guò)程,是驗(yàn)證猜想與實(shí)施的過(guò)程。數(shù)據(jù)分析基礎(chǔ)01按照研究者的目的分類統(tǒng)計(jì)。預(yù)測(cè)。數(shù)據(jù)挖掘。文本挖掘。優(yōu)化。實(shí)驗(yàn)設(shè)計(jì)。數(shù)據(jù)分析基礎(chǔ)01數(shù)據(jù)分析過(guò)程識(shí)別信息需求識(shí)別信息需求是確保數(shù)據(jù)分析過(guò)程有效的首要條件,可以為收集數(shù)據(jù)、分析數(shù)據(jù)提供清晰的目標(biāo)。識(shí)別信息需求是管理者的職責(zé),管理者應(yīng)根據(jù)決策和過(guò)程控制的需求,提出對(duì)信息的需求。就過(guò)程控制而言,管理者應(yīng)識(shí)別需求要利用哪些信息支持評(píng)審過(guò)程輸入、過(guò)程輸出、資源配置的合理性、過(guò)程活動(dòng)的優(yōu)化方案和過(guò)程異常變異的發(fā)現(xiàn)。數(shù)據(jù)分析基礎(chǔ)01收集數(shù)據(jù)有目的地收集數(shù)據(jù)是確保數(shù)據(jù)分析過(guò)程有效的基礎(chǔ)。組織需要對(duì)收集數(shù)據(jù)的內(nèi)容、渠道、方法進(jìn)行策劃。策劃時(shí)應(yīng)考慮以下幾點(diǎn)。(1)將識(shí)別的需求轉(zhuǎn)化為具體的要求。(2)明確由誰(shuí)在何時(shí)何處通過(guò)何種渠道和方法收集數(shù)據(jù)。(3)記錄表應(yīng)便于使用。(4)采取有效措施,防止數(shù)據(jù)丟失和虛假數(shù)據(jù)對(duì)系統(tǒng)的干擾。數(shù)據(jù)分析基礎(chǔ)01分析數(shù)據(jù)分析數(shù)據(jù)是指對(duì)收集的數(shù)據(jù)通過(guò)加工、整理和分析,使其轉(zhuǎn)化為信息,通常用到的方法如下:老七種工具,即排列圖、因果圖、分層法、調(diào)查表、散布圖、直方圖、控制圖。新七種工具,即關(guān)聯(lián)圖、系統(tǒng)圖、矩陣圖、KJ法、計(jì)劃評(píng)審技術(shù)、PDPC法、矩陣數(shù)據(jù)圖。數(shù)據(jù)分析基礎(chǔ)01評(píng)估并改進(jìn)數(shù)據(jù)分析的有效性數(shù)據(jù)分析是質(zhì)量管理體系的基礎(chǔ)。組織的管理者應(yīng)在適當(dāng)時(shí),通過(guò)對(duì)以下問(wèn)題的分析評(píng)估數(shù)據(jù)分析的有效性。(1)提供決策的信息是否充分、可信,是否存在因信息不足、失準(zhǔn)、滯后而導(dǎo)致決策失誤的問(wèn)題。(2)信息對(duì)持續(xù)改進(jìn)質(zhì)量管理體系、過(guò)程、產(chǎn)品所發(fā)揮的作用是否與期望值一致,是否在產(chǎn)品實(shí)現(xiàn)過(guò)程中有效運(yùn)用了數(shù)據(jù)分析。(3)收集數(shù)據(jù)的目的是否明確,收集的數(shù)據(jù)是否真實(shí)和充分,信息渠道是否暢通。(4)數(shù)據(jù)分析方法是否合理,是否將風(fēng)險(xiǎn)控制在可接受的范圍內(nèi)。(5)數(shù)據(jù)分析所需資源是否得到保障。數(shù)據(jù)分析基礎(chǔ)01數(shù)據(jù)分析工具數(shù)據(jù)分析已成為21世紀(jì)最受歡迎的技術(shù)之一,由于行業(yè)對(duì)數(shù)據(jù)分析師的要求很高,因此只有具有所需技能的人員才能精通該領(lǐng)域。他們除具有數(shù)學(xué)知識(shí)外,還需要具有編程專業(yè)知識(shí)。盡管大多數(shù)語(yǔ)言都可以滿足軟件開(kāi)發(fā)的需求,但數(shù)據(jù)分析編程的不同之處在于它可以幫助用戶對(duì)數(shù)據(jù)進(jìn)行預(yù)處理、分析和生成預(yù)測(cè)。這些以數(shù)據(jù)為中心的編程語(yǔ)言能夠執(zhí)行適合于大數(shù)據(jù)分析特定要求的算法。ExcelMicrosoftExcel是微軟辦公套裝軟件的一個(gè)重要組成部分,是一種用于現(xiàn)代理財(cái)、數(shù)據(jù)分析的流行軟件。數(shù)據(jù)分析基礎(chǔ)01SmartbiSmartbi是一款商業(yè)智能工具,集數(shù)據(jù)鏈接、數(shù)據(jù)處理、可視化分析展現(xiàn)于一體,除了擁有數(shù)據(jù)分析功能,還擁有完善的企業(yè)級(jí)數(shù)據(jù)管控、數(shù)據(jù)分析挖掘等功能。SQLSQL被稱為“數(shù)據(jù)分析的關(guān)鍵”,是用于從稱為關(guān)系數(shù)據(jù)庫(kù)的有組織數(shù)據(jù)源中檢索數(shù)據(jù)的數(shù)據(jù)庫(kù)語(yǔ)言。在數(shù)據(jù)分析中,SQL用于更新、查詢和操作數(shù)據(jù)庫(kù)。數(shù)據(jù)分析基礎(chǔ)01MATLAB數(shù)據(jù)分析和處理是各種理工學(xué)科應(yīng)用中非常關(guān)鍵、重要的問(wèn)題。MATLAB是一套高性能的數(shù)值計(jì)算和可視化軟件,是實(shí)現(xiàn)數(shù)據(jù)分析與處理的有效工具。R語(yǔ)言對(duì)于面向統(tǒng)計(jì)的任務(wù),R語(yǔ)言是理想的語(yǔ)言。與Python相比,有抱負(fù)的大數(shù)據(jù)分析師可能不得不面對(duì)陡峭的學(xué)習(xí)曲線。R語(yǔ)言專門用于統(tǒng)計(jì)分析。因此,它在統(tǒng)計(jì)學(xué)家中非常受歡迎。數(shù)據(jù)分析基礎(chǔ)01PythonPython豐富的第三方庫(kù)包括(NumPy、Pandas等)為開(kāi)發(fā)提供便利,處理標(biāo)準(zhǔn)更加規(guī)范。Python結(jié)合了R語(yǔ)言的快速、處理復(fù)雜數(shù)據(jù)采集的能力,以及更務(wù)實(shí)的語(yǔ)言等各個(gè)特質(zhì),迅速成為主流。Python比起R語(yǔ)言,學(xué)起來(lái)更加簡(jiǎn)單、直觀,而且其生態(tài)系統(tǒng)近幾年來(lái)不可思議地快速成長(zhǎng),在統(tǒng)計(jì)分析方面,其功能更強(qiáng)。數(shù)據(jù)分析基礎(chǔ)01數(shù)據(jù)結(jié)果呈現(xiàn)列表法列表法是指將數(shù)據(jù)按一定的規(guī)律用列表方式表達(dá)出來(lái),是記錄和處理數(shù)據(jù)最常用的方法。表格的設(shè)計(jì)要求對(duì)應(yīng)關(guān)系清楚、簡(jiǎn)單明了,有利于發(fā)現(xiàn)相關(guān)量之間的相關(guān)關(guān)系。還要求在標(biāo)題欄中注明各個(gè)量的名稱、符號(hào)、數(shù)量級(jí)和單位等。根據(jù)需要,還可以列出除原始數(shù)據(jù)以外的計(jì)算欄目和統(tǒng)計(jì)欄目等。數(shù)據(jù)分析基礎(chǔ)01作圖法作圖法可以最醒目地表達(dá)各個(gè)物理量間的變化關(guān)系。從圖線上可以簡(jiǎn)便地求出實(shí)驗(yàn)需要的某些結(jié)果,還可以通過(guò)一定的變換,把某些復(fù)雜的函數(shù)關(guān)系用圖形表示出來(lái)。圖表和圖形的生成方式主要有兩種:手動(dòng)制表和用程序制表。其中,用程序制表是指利用相應(yīng)的軟件,如SPSS、Excel、MATLAB等,將調(diào)查的數(shù)據(jù)輸入程序中,通過(guò)對(duì)這些軟件進(jìn)行操作,得出最后結(jié)果,結(jié)果可以用圖表或圖形的方式表現(xiàn)出來(lái)。02Python基礎(chǔ)Python基礎(chǔ)02Python
簡(jiǎn)介Python由荷蘭數(shù)學(xué)和計(jì)算機(jī)科學(xué)研究學(xué)會(huì)的GuidovanRossum(吉多·范羅蘇姆)于20世紀(jì)90年代初設(shè)計(jì),作為一門叫作ABC語(yǔ)言的替代品。Python提供了高效的高級(jí)數(shù)據(jù)結(jié)構(gòu),還能簡(jiǎn)單、有效地面向?qū)ο缶幊獭?989年,荷蘭人GuidovanRossum為了克服ABC語(yǔ)言非開(kāi)放的缺點(diǎn),并受Modula-3語(yǔ)言的影響,結(jié)合UNIXShell和C語(yǔ)言的習(xí)慣,開(kāi)發(fā)了一個(gè)新的腳本解釋程序——Python。Python語(yǔ)言從20世紀(jì)90年代初誕生至今,已被逐漸廣泛應(yīng)用于系統(tǒng)管理任務(wù)的處理和Web編程。Python現(xiàn)今已經(jīng)成為最受歡迎的程序設(shè)計(jì)語(yǔ)言之一。Python基礎(chǔ)021995年,GuidovanRossum在弗吉尼亞州的國(guó)家創(chuàng)新研究公司(CNRI)繼續(xù)他在Python上的工作,發(fā)布了該軟件的多個(gè)版本。2000年5月,GuidovanRossum和Python核心開(kāi)發(fā)團(tuán)隊(duì)轉(zhuǎn)到BeO并組建了BeOpenPythonLabs團(tuán)隊(duì)。同年10月,BeOpenPythonLabs團(tuán)隊(duì)轉(zhuǎn)到DigitalCreations(現(xiàn)為ZopeCorporation)。2001年,Python軟件基金會(huì)(PSF)成立,這是一個(gè)專為擁有Python相關(guān)知識(shí)產(chǎn)權(quán)而創(chuàng)建的非營(yíng)利組織。Python基礎(chǔ)022000年10月16日,發(fā)布了Python2,該系列穩(wěn)定版本是Python2.7。2004年以后,Python的使用率呈線性增長(zhǎng)。2008年12月3日,發(fā)布了Python3,該版本不兼容Python2。2011年1月,Python3被TIOBE編程語(yǔ)言排行榜評(píng)為2010年度語(yǔ)言。2021年10月4日,Python正式發(fā)布了3.10版本。Python基礎(chǔ)02安裝PythonPython是一門解釋性腳本語(yǔ)言,因此,要想讓編寫(xiě)的代碼得以運(yùn)行,需要先安裝Python解釋器。Python下載打開(kāi)Python官網(wǎng)下載界面,如圖1-2所示。向下滑動(dòng)頁(yè)面,如圖1-3所示。在“Pythonreleasesbyversionnumber.”列表框中顯示不同版本的Python(Python2.0.1~Python3.9.9)。Python基礎(chǔ)02Python基礎(chǔ)02軟件安裝(1)雙擊安裝文件python-3.10.0-amd64.exe,彈出安裝界面“InstallPython3.10.0(64-bit)”,下面介紹該界面中的選項(xiàng)。InstallNow:默認(rèn)安裝且默認(rèn)安裝路徑不能更改。Customizeinstallation:自定義安裝。Installlauncherforallusers(recommended):默認(rèn)勾選該復(fù)選框,為所有用戶安裝啟動(dòng)器。AddPython3.10toPATH:勾選該復(fù)選框,將Python自動(dòng)加到環(huán)境變量中,默認(rèn)未勾選該復(fù)選框。Python基礎(chǔ)02(2)在該界面中勾選“AddPython3.10toPATH”復(fù)選框,如圖1-4所示。這樣可以將Python命令工具所在目錄添加到系統(tǒng)Path環(huán)境變量中,以后開(kāi)發(fā)程序或運(yùn)行Python命令會(huì)非常方便。Python基礎(chǔ)02(3)單擊“Customizeinstallation”(自定義安裝)按鈕,彈出選項(xiàng)設(shè)置界面“OptionalFeatures”,保持默認(rèn)參數(shù)設(shè)置,如圖1-6所示。Python基礎(chǔ)02(4)單擊“Next”(下一步)按鈕,進(jìn)入下一個(gè)高級(jí)設(shè)置界面“AdvancedOptions”,在“Customizeinstalllocation”文本框中更改安裝地址(不建議安裝在C盤(pán)),其余保持默認(rèn)設(shè)置,設(shè)置完畢后如圖1-7所示。Python基礎(chǔ)02(5)確定好安裝路徑后,單擊“Install”按鈕,此時(shí)會(huì)顯示安裝進(jìn)度,如圖1-8所示。由于系統(tǒng)需要復(fù)制大量文件,所以需要等待幾分鐘。在安裝過(guò)程中,可以隨時(shí)單擊“Cancel”按鈕來(lái)終止安裝過(guò)程。Python基礎(chǔ)02(6)安裝結(jié)束后,會(huì)出現(xiàn)“Setupwassuccessful”界面,如圖1-9所示。單擊“Close”按鈕,即可完成Python3.10.0的安裝工作。Python基礎(chǔ)02安裝檢查Python安裝結(jié)束后,需要檢查安裝是否成功。安裝結(jié)束后,在計(jì)算機(jī)的“開(kāi)始”欄中輸入“cmd”,打開(kāi)“命令提示符”界面,輸入Python,按Enter鍵,出現(xiàn)如圖1-10所示的運(yùn)行結(jié)果,表示Python安裝成功。Python基礎(chǔ)02Python基礎(chǔ)02Python內(nèi)置函數(shù)數(shù)學(xué)運(yùn)算類數(shù)學(xué)運(yùn)算類Python內(nèi)置函數(shù)如表1-1所示。Python基礎(chǔ)02Python基礎(chǔ)02集合類操作集合類操作Python內(nèi)置函數(shù)如表1-2所示。Python基礎(chǔ)02Python基礎(chǔ)02邏輯判斷類邏輯判斷類Python內(nèi)置函數(shù)如表1-3所示。Python基礎(chǔ)02反射類反射類Python內(nèi)置函數(shù)如表1-4所示。Python基礎(chǔ)02Python基礎(chǔ)02Python基礎(chǔ)02Python基礎(chǔ)02I/O操作類I/O操作類Python內(nèi)置函數(shù)如表1-5所示。Python基礎(chǔ)02Python基礎(chǔ)02集成庫(kù)Anaconda登錄Anaconda的官網(wǎng),單擊“Download”按鈕,下載Anaconda3-2021.11-Windows-x8664.exe文件,如圖1-11所示。這里默認(rèn)下載的版本是同時(shí)適用于64位的版本和32位的版本。安裝AnacondaPython基礎(chǔ)02Python基礎(chǔ)02安裝完成后,在“開(kāi)始”→“Anaconda3(64-bit)”菜單下顯示安裝后的6個(gè)圖標(biāo),如圖1-21所示。驗(yàn)證安裝結(jié)果AnacondaNavigator(anaconda3):用于管理工具包和環(huán)境的圖形用戶界面程序。AnacondaPowershellPrompt(anaconda3):Anaconda3命令提示符窗口。AnacondaPrompt(anaconda3):Anaconda3命令提示符窗口安裝、卸載及更新包等程序。Python基礎(chǔ)02JupyterNotebook(anaconda3):交互式開(kāi)發(fā)工具,基于Web的交互式Python開(kāi)發(fā)環(huán)境。ResetSpyderSettings(anaconda3):重置Spyder程序。Spyder(anaconda3):Python集成開(kāi)發(fā)環(huán)境,以表格方式瀏覽變量,方便查看數(shù)據(jù)。Python基礎(chǔ)02可選以下任意方法進(jìn)行驗(yàn)證。(1)選擇“開(kāi)始”→“Anaconda3(64-bit)”→“AnacondaNavigator”命令,成功啟動(dòng)AnacondaNavigator,如圖1-22所示,安裝成功。Python基礎(chǔ)02(2)在“開(kāi)始”→“Anaconda3(64-bit)”→“AnacondaPrompt”上單擊鼠標(biāo)右鍵,選擇“以管理員身份運(yùn)行”命令,輸入condalist,可以查看已經(jīng)安裝的包名和版本號(hào),如圖1-23所示,結(jié)果正常顯示,說(shuō)明安裝成功。Python基礎(chǔ)02安裝Python庫(kù)pip是一個(gè)現(xiàn)代的、通用的Python包管理工具,提供了對(duì)Python包進(jìn)行查找、下載、安裝、卸載的功能,install命令用于安裝包的安裝。在安裝Python時(shí),已經(jīng)安裝了pip工具。所有第三方庫(kù)都需要下載、安裝、導(dǎo)入,只有這樣才可以應(yīng)用。下載、安裝NumPy最簡(jiǎn)單的方法就是使用pip工具。pip工具安裝Python基礎(chǔ)02(1)安裝NumPy。在“開(kāi)始”下面的搜索欄中輸入“cmd”,打開(kāi)“命令提示符”界面,顯示下面的用戶名(不同的用戶顯示的用戶名不同)。在窗口中輸入:出現(xiàn)NumPy的安裝過(guò)程信息,顯示程序如下。Python基礎(chǔ)02(1)安裝NumPy。安裝進(jìn)度結(jié)束后,顯示安裝成功信息。安裝結(jié)束后,啟動(dòng)Python,在IDLEShell3.10.0中輸入下面的程序,驗(yàn)證安裝是否成功。Python基礎(chǔ)02(2)安裝數(shù)據(jù)分析庫(kù)Pandas。在“開(kāi)始”下面的搜索欄中輸入“cmd”,打開(kāi)“命令提示符”界面,顯示下面的用戶名(不同的用戶顯示的用戶名不同)。在窗口中輸入:出現(xiàn)Pandas的安裝過(guò)程信息與安裝結(jié)果,如圖1-24所示。Python基礎(chǔ)02Python基礎(chǔ)02雙擊“AnacondaNavigator”圖標(biāo),啟動(dòng)AnacondaNavigator。單擊“Environments”選項(xiàng)卡,顯示Anaconda定義的兩個(gè)Python環(huán)境base(root)、anaconda3,右側(cè)顯示該環(huán)境下的第三方庫(kù)。在頂端的下拉列表中顯示第三方庫(kù)的分類,包括Installed(已安裝)、Notinstalled(未安裝)、Updatable(可更新)、Selected(已選中)、All(全部)。在下拉列表中選擇“All”(全部)選項(xiàng),開(kāi)始確定需要用到的庫(kù)是否已安裝。Anaconda安裝Python基礎(chǔ)02(1)安裝數(shù)據(jù)可視化庫(kù)Matplotlib。在右上角的搜索框中輸入“Matplotlib”,顯示未安裝該圖形繪制模塊庫(kù),如圖1-25所示。勾選庫(kù)名稱前的復(fù)選框,單擊“Apply”(應(yīng)用)按鈕,彈出“InstallPackages”(安裝包)對(duì)話框,如圖1-26所示。確定需要安裝的軟件包,單擊“Apply”(應(yīng)用)按鈕,開(kāi)始安裝該庫(kù)。安裝結(jié)束后,自動(dòng)勾選庫(kù)名稱前的復(fù)選框,顯示已安裝,如圖1-27所示。Python基礎(chǔ)02Python基礎(chǔ)02Python基礎(chǔ)02(2)安裝數(shù)據(jù)分析庫(kù)SciPy。在右上角的搜索框中輸入“SciPy”,勾選庫(kù)名稱前的復(fù)選框,激活“Apply”(應(yīng)用)按鈕,此時(shí)單擊該按鈕,安裝該庫(kù)。安裝結(jié)束后,自動(dòng)勾選庫(kù)名稱前的復(fù)選框,顯示已安裝,如圖1-28所示。Python基礎(chǔ)02感謝觀看,再見(jiàn)!Python數(shù)據(jù)分析Python數(shù)據(jù)分析Python數(shù)據(jù)分析開(kāi)發(fā)環(huán)境第二章01集成開(kāi)發(fā)環(huán)境PyCharm集成開(kāi)發(fā)環(huán)境PyCharm01安裝PyCharm下載軟件登錄PyCharm的官網(wǎng),下載時(shí)有以下兩個(gè)版本可以選擇。Professional(專業(yè)版,收費(fèi))。Community(社區(qū)版,免費(fèi))。一般來(lái)說(shuō),下載免費(fèi)社區(qū)版。在“Community”下面單擊“Download”(下載)按鈕,下載PyCharm2021.3版本pycharm-community-2021.3.exe文件,如圖2-1所示。集成開(kāi)發(fā)環(huán)境PyCharm01集成開(kāi)發(fā)環(huán)境PyCharm01安裝PyCharm的具體過(guò)程雙擊pycharm-community-2021.3.exe文件,彈出安裝界面,如圖2-2所示。集成開(kāi)發(fā)環(huán)境PyCharm01安裝PyCharm的具體過(guò)程單擊“Next”(下一步)按鈕,進(jìn)入下一個(gè)界面。在該界面中,用戶需要選擇PyCharm的安裝路徑,可以通過(guò)單擊“Browse.”(搜索)按鈕,自定義其安裝路徑,如圖2-3所示。單擊“Next”(下一步)按鈕,出現(xiàn)安裝選項(xiàng)設(shè)置界面,需要進(jìn)行一些設(shè)置,如圖2-4所示。集成開(kāi)發(fā)環(huán)境PyCharm01安裝PyCharm的具體過(guò)程PyCharmCommunityEdition:勾選該復(fù)選框,創(chuàng)建桌面快捷方式。Add“bin”foldertothePATH:勾選該復(fù)選框,將PyCharm的啟動(dòng)目錄添加到環(huán)境變量中,執(zhí)行該操作后,需要重啟計(jì)算機(jī)。Add“OpenFolderasProject”:勾選該復(fù)選框,添加鼠標(biāo)右鍵菜單,使用打開(kāi)項(xiàng)目的方式打開(kāi)此文件夾。.py:勾選該復(fù)選框后,以后在打開(kāi).py文件時(shí)就會(huì)用PyCharm打開(kāi),此時(shí)PyCharm每次打開(kāi)的速度都會(huì)比較慢。單擊“Next”(下一步)按鈕,默認(rèn)選擇“JetBrains”選項(xiàng),如圖2-5所示,單擊“Install”(安裝)按鈕,此時(shí)會(huì)顯示安裝進(jìn)度,如圖2-6所示,需要等待安裝完畢。安裝結(jié)束后如圖2-7所示。單擊“Finish”(完成)按鈕即可完成PyCharm的安裝工作。集成開(kāi)發(fā)環(huán)境PyCharm01集成開(kāi)發(fā)環(huán)境PyCharm01集成開(kāi)發(fā)環(huán)境PyCharm01配置PyCharm雙擊桌面上的“PyCharm”圖標(biāo),進(jìn)入用戶協(xié)議界面,勾選“IconfirmthatIhavereadandacceptthetermsofthisUserAgreement”復(fù)選框,同意用戶使用協(xié)議,如圖2-8所示。單擊“Continue”(繼續(xù))按鈕,彈出數(shù)據(jù)共享界面“DATASHARING”,如圖2-9所示,確定是否需要進(jìn)行數(shù)據(jù)共享,選擇“Don'tSend”按鈕,激活PyCharm啟動(dòng)界面,如圖2-10所示。集成開(kāi)發(fā)環(huán)境PyCharm01集成開(kāi)發(fā)環(huán)境PyCharm01集成開(kāi)發(fā)環(huán)境PyCharm01PyCharm激活之后會(huì)自動(dòng)跳轉(zhuǎn)到編輯界面,如圖2-11所示。該界面包括“Projects”(項(xiàng)目)、“Customize”(自定義)、“Plugins”(插件)、“LearnPyCharm”(學(xué)習(xí)文檔)4個(gè)選項(xiàng)卡。集成開(kāi)發(fā)環(huán)境PyCharm01如圖2-12所示,單擊“Customize”(自定義)選項(xiàng)卡,設(shè)置編輯區(qū)參數(shù)。在“Colortheme”(顏色主題)下拉列表中有4個(gè)主題,根據(jù)需要,選擇“IntelliJLight”(白色主題)選項(xiàng),自動(dòng)更新界面顏色,如圖2-13所示。集成開(kāi)發(fā)環(huán)境PyCharm01集成開(kāi)發(fā)環(huán)境PyCharm01PyCharm編輯環(huán)境進(jìn)入PyCharm項(xiàng)目文件后,需要?jiǎng)?chuàng)建Python文件,只有這樣才可以進(jìn)入PyCharm與Python交互代碼編譯界面。Python文件的創(chuàng)建包含以下兩種方式。集成開(kāi)發(fā)環(huán)境PyCharm01通過(guò)菜單命令創(chuàng)建在PyCharm中創(chuàng)建一個(gè)新文件最簡(jiǎn)便的方法是在“File”(文件)→“New”(新建)子菜單中選擇一種適當(dāng)?shù)奈募愋?。選擇菜單欄中的“File”(文件)→“New”(新建)命令,打開(kāi)如圖2-14所示的子菜單。選擇“PythonFile”(Python文件)命令,彈出“NewPythonfile”(新建Python文件)對(duì)話框,Python文件包含3種類型:Pythonfile(Python文件)、Pythonunittest(Python單元測(cè)試文件)、Pythonstub(Python存根文件)。選擇“Pythonfile”選項(xiàng),輸入文件名稱Pythonfile01,如圖2-15所示,按Enter鍵,進(jìn)入新建的文件,即Pythonfile01.py的編輯界面。集成開(kāi)發(fā)環(huán)境PyCharm01集成開(kāi)發(fā)環(huán)境PyCharm01利用右鍵快捷命令在項(xiàng)目文件上單擊鼠標(biāo)右鍵,選擇“New”(新建)→“PythonFile”(Python文件)命令。PyCharm的編輯環(huán)境如圖2-16所示,其工作界面由標(biāo)題欄、菜單欄、工具欄、命令行窗口、Project(項(xiàng)目)面板、Run(程序運(yùn)行結(jié)果)面板、狀態(tài)欄組成。Python的程序運(yùn)行包含以下4種方式。①在命令行窗口中,在需要運(yùn)行的代碼上單擊鼠標(biāo)右鍵,選擇“Run”命令。②單擊菜單欄下方工具欄中的“Run”(運(yùn)行)按鈕》。③單擊Run面板左側(cè)工具欄中的“Run”(運(yùn)行)按鈕。④快捷鍵Ctrl+Shift+F10。集成開(kāi)發(fā)環(huán)境PyCharm01集成開(kāi)發(fā)環(huán)境PyCharm01加載模塊當(dāng)用Python進(jìn)行數(shù)據(jù)分析時(shí),常用模塊庫(kù)有NumPy、SciPy、Pandas,Matplotlib,使用pip3工具或Anaconda在下載、安裝這些模塊后,可以在ShellIDLE中使用關(guān)于數(shù)組、矩陣的函數(shù),但若在PyCharm中使用數(shù)據(jù)分析模塊,則需要另行安裝。打開(kāi)PyCharm,選擇菜單欄中的“File”(文件)→“Setting”(設(shè)置)命令,打開(kāi)“Setting”(設(shè)置)對(duì)話框,打開(kāi)“Project:pythonProject”→“PythonInterpreter”窗口,單擊“Install”(安裝)按鈕圍,彈出“AvaliablePackage”(有用的安裝包)對(duì)話框。集成開(kāi)發(fā)環(huán)境PyCharm01在搜索框中輸入需要安裝的數(shù)組計(jì)算庫(kù)“numpy”,在列表框中選擇“numpy”選項(xiàng),如圖2-19所示。單擊“InstallPackage”(安裝安裝包)按鈕,即可安裝該模塊庫(kù)。彈出“Packagesinstalledsuccessfully”提示框,并顯示。表示安裝成功。集成開(kāi)發(fā)環(huán)境PyCharm01集成開(kāi)發(fā)環(huán)境PyCharm01在搜索框中輸入需要安裝的數(shù)據(jù)分析庫(kù)“pandas”,在列表框中選擇“Pandas3”選項(xiàng),如圖2-20所示。單擊“InstallPackage”(安裝安裝包)按鈕,即可安裝該模塊庫(kù)。彈出“Packagesinstalledsuccessfully”提示框,并顯示。表示安裝成功。集成開(kāi)發(fā)環(huán)境PyCharm01集成開(kāi)發(fā)環(huán)境PyCharm01在搜索框中輸入需要安裝的數(shù)據(jù)可視化庫(kù)“Matplotlib”,在列表框中選擇“matplotlib”選項(xiàng),如圖2-21所示。單擊“InstallPackage”(安裝安裝包)按鈕,即可安裝該模塊庫(kù)。彈出“Packagesinstalledsuccessfully”提示框,并顯示。表示安裝成功。集成開(kāi)發(fā)環(huán)境PyCharm01集成開(kāi)發(fā)環(huán)境PyCharm01在搜索框中輸入需要安裝的數(shù)據(jù)分析庫(kù)“scipy”,在列表框中選擇“scipy”選項(xiàng),如圖2-22所示。單擊“InstallPackage”(安裝安裝包)按鈕,即可安裝該模塊庫(kù)。彈出如圖2-23所示的“Packagesinstalledsuccessfully”提示框,并顯示。表示安裝成功。集成開(kāi)發(fā)環(huán)境PyCharm01集成開(kāi)發(fā)環(huán)境PyCharm01集成開(kāi)發(fā)環(huán)境PyCharm01模塊導(dǎo)入在計(jì)算機(jī)程序的開(kāi)發(fā)過(guò)程中,一個(gè)文件里的代碼會(huì)越來(lái)越長(zhǎng),越來(lái)越不容易維護(hù)。為了編寫(xiě)可維護(hù)的代碼,可以對(duì)很多函數(shù)進(jìn)行分組,分別放在不同的文件里,使得每個(gè)文件包含的代碼相對(duì)較少,很多編程語(yǔ)言都采用這種組織代碼的方式。在Python中,一個(gè).py文件就稱為一個(gè)模塊(Module)。模塊分為3類:Python標(biāo)準(zhǔn)庫(kù)、第三方模塊、應(yīng)用程序自定義模塊。對(duì)一個(gè)復(fù)雜的功能來(lái)說(shuō),可能需要多個(gè)函數(shù)才能完成(函數(shù)又可以在不同的.py文件中),n個(gè).py文件組成的代碼集合也稱為模塊。集成開(kāi)發(fā)環(huán)境PyCharm01模塊導(dǎo)入模塊的應(yīng)用提高了代碼的可維護(hù)性;編寫(xiě)代碼不必從零開(kāi)始,如果一個(gè)模塊編寫(xiě)完畢,就可以在其他地方引用。當(dāng)然,它也可以經(jīng)常引用其他模塊,包括Python內(nèi)置的模塊和來(lái)自第三方的模塊。另外,使用模塊還可以避免函數(shù)名和變量名產(chǎn)生沖突。相同名字的函數(shù)和變量完全可以分別在不同的模塊中存在,盡量不要與內(nèi)置函數(shù)名字產(chǎn)生沖突。02Python數(shù)據(jù)類型Python數(shù)據(jù)類型02字符串字符主要由26個(gè)英文字母及空格等一些特殊符號(hào)組成,根據(jù)儲(chǔ)存格式的不同,分為字符常量與字符串常量。其中,所有的空格和制表符都照原樣保留。2數(shù)值這里的數(shù)值指單個(gè)的由阿拉伯?dāng)?shù)字及一些特殊字符組成的數(shù)值。而不是由一組一組的數(shù)值組成的對(duì)象。1列表Python列表是任意對(duì)象的有序集合,通常在中括號(hào)[]里創(chuàng)建,元素之間用逗號(hào)隔開(kāi)。這里的任意對(duì)象既可以是列表嵌套列表,又可以是字符串。3Python數(shù)據(jù)類型02元組元組(tuple)與列表類似,不同之處在于元組的元素不能修改。元組變量通過(guò)小括號(hào)創(chuàng)建,元素之間用逗號(hào)隔開(kāi)。5區(qū)間range(區(qū)間)類似于一個(gè)整數(shù)列表,是一個(gè)可迭代對(duì)象(類型是對(duì)象)。也是一種數(shù)據(jù)結(jié)構(gòu)。4集合集合是一個(gè)無(wú)序不重復(fù)元素的序列??梢允褂么罄ㄌ?hào){}或set函數(shù)創(chuàng)建。6Python數(shù)據(jù)類型02字典字典是一種可變?nèi)萜髂P?,且可存?chǔ)任意類型對(duì)象,通常由“{}”創(chuàng)建。字典(dictionary)是除列表以外,Python之中最靈活的內(nèi)置數(shù)據(jù)結(jié)構(gòu)類型。{}定義空字典。字典是一個(gè)無(wú)序的鍵(key)值(value)對(duì)的集合7Python數(shù)據(jù)類型02常量與變量常量與變量都是用于存儲(chǔ)數(shù)據(jù)的容器,在定義時(shí),都需要指明數(shù)據(jù)類型,它們唯一的區(qū)別是常量中存放的值不允許更改,而變量中存放的值是允許更改的。常量可以看作一種特殊的變量,只不過(guò)這種變量在定義時(shí)必須被賦值,且之后不能重新賦值或更改。以常量作為研究對(duì)象的數(shù)學(xué)稱為常量數(shù)學(xué)或初等數(shù)學(xué),主要包括算術(shù)、初等代數(shù)、幾何等學(xué)科。常量數(shù)學(xué)主要是在形式邏輯的范圍內(nèi)活動(dòng)的,雖然適應(yīng)了一定生產(chǎn)力發(fā)展的需要,但有一定的局限性。變量的引進(jìn)及其成為數(shù)學(xué)的研究對(duì)象加速了變量數(shù)學(xué)的主要部分微積分的產(chǎn)生。Python數(shù)據(jù)類型02常量常量是程序運(yùn)行中值不改變的量,如身份證號(hào)、出生年月等固定不變的量。在Python中,并沒(méi)有提供定義常量的保留字,不過(guò)在PEP8中定義了常量的命名規(guī)范,是由大寫(xiě)字母和下畫(huà)線組成的。變量變量是任何程序設(shè)計(jì)語(yǔ)言的基本元素之一,Python語(yǔ)言當(dāng)然也不例外。與常規(guī)的程序設(shè)計(jì)語(yǔ)言不同的是,Python并不要求事先對(duì)所使用的變量進(jìn)行聲明,也不需要指定變量類型,它會(huì)自動(dòng)依據(jù)所賦予變量的值或?qū)ψ兞窟M(jìn)行的操作來(lái)識(shí)別變量的類型。Python數(shù)據(jù)類型02變量的輸入/輸出函數(shù)(1)input函數(shù)。input函數(shù)用來(lái)提示用戶從鍵盤(pán)輸入數(shù)據(jù)、字符串或表達(dá)式,并接收輸入值,其調(diào)用格式如下。這種格式的功能是以文本字符串prompt為信息給出用戶提示,將用戶鍵入的內(nèi)容賦值給變量,返回字符串類型。Python數(shù)據(jù)類型02變量的輸入/輸出函數(shù)(2)print函數(shù)。print函數(shù)用于打印輸出,其調(diào)用格式如下。其中的參數(shù)選項(xiàng)介紹如下。objects:復(fù)數(shù),表示可以一次輸出多個(gè)對(duì)象。在輸出多個(gè)對(duì)象時(shí),需要用“,”分隔開(kāi)。sep:用來(lái)間隔多個(gè)對(duì)象,默認(rèn)值是一個(gè)空格。end:用來(lái)設(shè)定以什么結(jié)尾,默認(rèn)值是換行符\n,可以換成其他字符串。file:要寫(xiě)入的文件對(duì)象。flush:指定輸出是否被緩存,通常決定于file,但如果flush關(guān)鍵字的參數(shù)為True,則會(huì)被強(qiáng)制刷新。Python數(shù)據(jù)類型02在進(jìn)行變量的輸入/輸出時(shí),可以自定義其格式。Python的格式化符號(hào)如表2-1所示。Python數(shù)據(jù)類型02運(yùn)算符Python提供了豐富的運(yùn)算符,能滿足用戶的各種應(yīng)用要求。這些運(yùn)算符包括算術(shù)運(yùn)算符、比較(關(guān)系)運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符、成員運(yùn)算符和身份運(yùn)算符。下面簡(jiǎn)要介紹各種運(yùn)算符的功能。Python語(yǔ)言的算術(shù)運(yùn)算符如表2-5所示。Python數(shù)據(jù)類型02基本數(shù)學(xué)函數(shù)在Python中,數(shù)學(xué)運(yùn)算常用的函數(shù)基本都在math和cmath模塊中,math模塊提供了許多針對(duì)浮點(diǎn)數(shù)的數(shù)學(xué)運(yùn)算函數(shù),cmath模塊包含了一些用于復(fù)數(shù)運(yùn)算的函數(shù)。Python常用的三角函數(shù)及角度轉(zhuǎn)換函數(shù)如表2-6所示。Python數(shù)據(jù)類型02數(shù)值類型數(shù)值是數(shù)學(xué)中常見(jiàn)的數(shù)據(jù)類型,是Python程序設(shè)計(jì)運(yùn)行的基礎(chǔ)。在程序設(shè)計(jì)進(jìn)程中,根據(jù)不同的需求,定義對(duì)應(yīng)的數(shù)值類型,也可以將指定的數(shù)值進(jìn)行轉(zhuǎn)換。Python支持以下4種不同的數(shù)值類型。int:有符號(hào)整型。long:長(zhǎng)整型,也可以代表八進(jìn)制數(shù)和十六進(jìn)制數(shù)。float:浮點(diǎn)型。complex:復(fù)數(shù)。Python數(shù)據(jù)類型02長(zhǎng)整型long(長(zhǎng)整型)屬于整型數(shù)據(jù)的一種,占用4字節(jié)。長(zhǎng)整型也可以使用小寫(xiě)字母1表示,但是還是建議使用大寫(xiě)字母L表示,避免與數(shù)字1混淆Python使用L顯示長(zhǎng)整型。2有符號(hào)整型int屬于整型數(shù)據(jù)的一種,占用4字節(jié)。1Python數(shù)據(jù)類型02復(fù)數(shù)類型另外,Python還支持復(fù)數(shù),把形如a+bi(a和b均為實(shí)數(shù))的數(shù)稱為復(fù)數(shù)。其中,a稱為實(shí)部,b稱為虛部,i稱為虛數(shù)單位。4浮點(diǎn)型浮點(diǎn)型數(shù)據(jù)只采用十進(jìn)制形式,有兩種形式:十進(jìn)制數(shù)形式和指數(shù)形式。3Python數(shù)據(jù)類型02數(shù)據(jù)迭代輸出迭代是Python最強(qiáng)大的功能之一,是訪問(wèn)集合元素的一種方式。從集合的第一個(gè)元素開(kāi)始訪問(wèn),直到所有的元素被訪問(wèn)完。數(shù)據(jù)迭代函數(shù)及其調(diào)用格式如表2-7所示。Python數(shù)據(jù)類型02數(shù)據(jù)類型轉(zhuǎn)換一般而言,在Python中,數(shù)據(jù)的存儲(chǔ)與計(jì)算都是以雙精度進(jìn)行的,但有多種顯示形式。在默認(rèn)情況下,若數(shù)據(jù)為整數(shù),就以整數(shù)表示。若數(shù)據(jù)為實(shí)數(shù),則以保留小數(shù)點(diǎn)后4位的精度近似表示。對(duì)于數(shù)據(jù)類型的轉(zhuǎn)換,只需將數(shù)據(jù)類型作為函數(shù)名即可。表2-8中的幾個(gè)內(nèi)置的函數(shù)可以執(zhí)行數(shù)據(jù)類型之間的轉(zhuǎn)換。Python數(shù)據(jù)類型02Python數(shù)據(jù)類型0203程序結(jié)構(gòu)程序結(jié)構(gòu)03表達(dá)式語(yǔ)句表達(dá)式對(duì)于Python的數(shù)值運(yùn)算,數(shù)字表達(dá)式是由常量、數(shù)值變量、數(shù)值函數(shù)或數(shù)值矩陣用運(yùn)算符連接而成的數(shù)學(xué)關(guān)系式。而在Python的符號(hào)運(yùn)算中,符號(hào)表達(dá)式是由符號(hào)常量、符號(hào)變量、符號(hào)函數(shù)用運(yùn)算符或?qū)S煤瘮?shù)連接而成的符號(hào)對(duì)象。符號(hào)表達(dá)式有兩類:符號(hào)函數(shù)與符號(hào)方程。在Python程序中,既經(jīng)常使用數(shù)值表達(dá)式,又大量使用符號(hào)表達(dá)式。程序結(jié)構(gòu)03語(yǔ)句單個(gè)表達(dá)式就是表達(dá)式語(yǔ)句。一行可以只有一個(gè)語(yǔ)句;也可以有多個(gè)語(yǔ)句,此時(shí)語(yǔ)句之間以英文輸入狀態(tài)下的分號(hào)或逗號(hào)或按Enter鍵換行結(jié)束。Python語(yǔ)言中的一個(gè)語(yǔ)句可以占多行,當(dāng)由多行構(gòu)成一個(gè)語(yǔ)句時(shí),需要使用續(xù)行符“……”。以分號(hào)結(jié)束的語(yǔ)句執(zhí)行后不顯示運(yùn)行結(jié)果,以逗號(hào)或按Enter鍵換行結(jié)束的語(yǔ)句執(zhí)行后顯示運(yùn)行結(jié)果(表達(dá)式的值)。表達(dá)式語(yǔ)句運(yùn)行后,其值暫時(shí)保留在固定變量中,變量只保留最近一次的結(jié)果。程序結(jié)構(gòu)03邏輯表達(dá)式邏輯表達(dá)式的一般形式如下:其中的表達(dá)式可以是邏輯表達(dá)式,從而形成嵌套。例如,(a&b)&c,根據(jù)邏輯運(yùn)算符的左結(jié)合性,該表達(dá)式也可寫(xiě)為a&b&c。程序結(jié)構(gòu)03賦值語(yǔ)句將表達(dá)式的值賦值給變量構(gòu)成賦值表達(dá)式。人機(jī)交互語(yǔ)句input命令用來(lái)提示用戶從鍵盤(pán)輸入數(shù)據(jù)、字符串或表達(dá)式,并接收輸入值。程序結(jié)構(gòu)03順序結(jié)構(gòu)順序結(jié)構(gòu)是最簡(jiǎn)單、最易學(xué)的一種程序結(jié)構(gòu),由多個(gè)Python語(yǔ)句順序構(gòu)成。各語(yǔ)句之間用分號(hào)“;”隔開(kāi),若不加分號(hào),則必須分行編寫(xiě),程序執(zhí)行時(shí)也是由上至下順序進(jìn)行的。選擇結(jié)構(gòu)選擇結(jié)構(gòu)也叫分支結(jié)構(gòu),即根據(jù)表達(dá)式值的情況來(lái)選擇執(zhí)行哪些語(yǔ)句。在編寫(xiě)較復(fù)雜的算法時(shí),一般都會(huì)用到此結(jié)構(gòu)。其中較常用的是if-else結(jié)構(gòu)。Python分支結(jié)構(gòu)分為單分支結(jié)構(gòu)、二分支結(jié)構(gòu)、多分支結(jié)構(gòu)。程序結(jié)構(gòu)03循環(huán)結(jié)構(gòu)在利用Python進(jìn)行數(shù)值實(shí)驗(yàn)或工程計(jì)算時(shí),用得最多的便是循環(huán)結(jié)構(gòu)了。在循環(huán)結(jié)構(gòu)中,被重復(fù)執(zhí)行的語(yǔ)句組稱為循環(huán)體,常用的循環(huán)結(jié)構(gòu)有兩種:for循環(huán)與while循環(huán)。下面分別簡(jiǎn)要介紹其相應(yīng)的用法。for循環(huán)在for循環(huán)中,循環(huán)次數(shù)一般情況下是已知的,除非用其他語(yǔ)句提前終止循環(huán)。這種循環(huán)以for開(kāi)頭,其一般形式為。程序結(jié)構(gòu)03for循環(huán)其中,在每次循環(huán)中,迭代變量<variable>用于接收迭代對(duì)象<sequence>中元素的值,變量每取一次值,循環(huán)便執(zhí)行一次,直到迭代對(duì)象的最后一項(xiàng)。迭代變量<variable>無(wú)特殊意義,一般用i表示。循環(huán)次數(shù)<sequence>可以遍歷任何可迭代對(duì)象,如一個(gè)列表或一個(gè)字符串。程序結(jié)構(gòu)03while循環(huán)若不知道所需的循環(huán)到底要執(zhí)行多少次,就可以選擇while-end循環(huán),這種循環(huán)以while開(kāi)頭,其一般形式為。其中,表達(dá)式即循環(huán)控制語(yǔ)句,一般是由邏輯運(yùn)算或關(guān)系運(yùn)算及一般運(yùn)算組成的表達(dá)式。若表達(dá)式的值非零,則執(zhí)行一次循環(huán),否則停止循環(huán)。這種循環(huán)方式在編寫(xiě)某一數(shù)值算法時(shí)用得非常多。一般來(lái)說(shuō),能用for循環(huán)實(shí)現(xiàn)的程序也能用while循環(huán)實(shí)現(xiàn)。程序結(jié)構(gòu)03條件表達(dá)式在進(jìn)行程序設(shè)計(jì)時(shí),經(jīng)常會(huì)根據(jù)表達(dá)式的結(jié)果有條件地賦值,可以使用循環(huán)結(jié)構(gòu)的緊湊形式進(jìn)行設(shè)計(jì)。這種方式適用于簡(jiǎn)單表達(dá)式,是程序結(jié)構(gòu)的簡(jiǎn)化形式,其一般形式為。程序結(jié)構(gòu)03程序的流程控制在利用Python編程解決實(shí)際問(wèn)題時(shí),可能會(huì)需要提前終止for與while等循環(huán)結(jié)構(gòu),有時(shí)可能需要顯示必要的出錯(cuò)或警告信息和批處理文件的執(zhí)行過(guò)程等。而這些特殊要求的實(shí)現(xiàn)就需要本節(jié)所講的程序的流程控制命令,如break、continue等。程序結(jié)構(gòu)03continue命令continue命令通常用在for或while循環(huán)結(jié)構(gòu)中,并與if一起使用,作用是結(jié)束本次循環(huán),即跳過(guò)其后的循環(huán)語(yǔ)句而直接進(jìn)行下一次是否執(zhí)行循環(huán)的判斷。break命令break命令一般用來(lái)終止for或while循環(huán),通常與if條件語(yǔ)句一起使用,如果條件滿足,則利用break命令將循環(huán)終止。在多層循環(huán)嵌套中,break只終止最內(nèi)層的循環(huán)。程序結(jié)構(gòu)03程序調(diào)試在程序執(zhí)行過(guò)程中發(fā)生影響程序的正常執(zhí)行的情況時(shí),PyCharm會(huì)彈出報(bào)錯(cuò)信息,表示程序出現(xiàn)錯(cuò)誤,如圖2-30所示。程序結(jié)構(gòu)03程序調(diào)試在Run面板中顯示錯(cuò)誤的位置、類別、原因,單擊命令行窗口右上角的!圖標(biāo),顯示錯(cuò)誤信息;單擊~圖標(biāo),顯示出現(xiàn)錯(cuò)誤的函數(shù)信息,可以根據(jù)這些信息進(jìn)行程序調(diào)試。按照錯(cuò)誤信息修改語(yǔ)法錯(cuò)誤后,單擊“Run”(運(yùn)行)按鈕,運(yùn)行程序,此時(shí)命令行窗口右上角顯示運(yùn)行無(wú)誤的圖標(biāo),在Run面板中顯示運(yùn)行結(jié)果,如圖2-31所示。程序結(jié)構(gòu)03感謝觀看,再見(jiàn)!Python數(shù)據(jù)分析Python數(shù)據(jù)分析數(shù)組計(jì)算庫(kù)Numpy第三章01數(shù)組的創(chuàng)建數(shù)組的創(chuàng)建01數(shù)組數(shù)據(jù)類型NumPy支持的數(shù)據(jù)類型比Python內(nèi)置的類型要多,基本上可以和C語(yǔ)言中的數(shù)據(jù)類型對(duì)應(yīng)上,其中部分類型對(duì)應(yīng)為Python內(nèi)置的類型。表3-1列舉了常用的NumPy數(shù)據(jù)類型。數(shù)組的創(chuàng)建01數(shù)組的創(chuàng)建01數(shù)組的創(chuàng)建01NumPy的數(shù)組對(duì)象ndarray是存儲(chǔ)數(shù)據(jù)和有關(guān)如何處理數(shù)據(jù)的信息的數(shù)據(jù)類型,描述了數(shù)據(jù)以下幾個(gè)方面的內(nèi)容。數(shù)據(jù)的類型(整數(shù)、浮點(diǎn)數(shù)或Python對(duì)象)。數(shù)據(jù)的大?。ㄈ缯麛?shù)使用多少字節(jié)進(jìn)行存儲(chǔ))。數(shù)據(jù)的字節(jié)順序(小端法或大端法)。如果數(shù)據(jù)類型是結(jié)構(gòu)化類型,則描述的是字段的名稱、每個(gè)字段的數(shù)據(jù)類型和每個(gè)字段所取的內(nèi)存塊的部分。如果數(shù)據(jù)類型是子數(shù)組,則描述的是其形狀和數(shù)據(jù)類型。數(shù)組的創(chuàng)建01創(chuàng)建數(shù)組的具體方法array函數(shù)NumPy使用array函數(shù),通過(guò)直接定義數(shù)據(jù)創(chuàng)建數(shù)組,返回N維數(shù)組對(duì)象(ndarray),其調(diào)用格式如下:參數(shù)說(shuō)明如下。object:數(shù)組、數(shù)組接口的任何對(duì)象,返回?cái)?shù)組的對(duì)象或任何(嵌套)序列。dtype:數(shù)據(jù)類型。copy:bool,如果copy=True(默認(rèn)值),則復(fù)制對(duì)象。數(shù)組的創(chuàng)建01array函數(shù)order:指定陣列的內(nèi)存布局,可選址為'K'(按照元素在內(nèi)存中出現(xiàn)的順序排列)、'A'(原順序)、'C'(按行)、'F'(按列)。如果object不是數(shù)組,則新創(chuàng)建的數(shù)組將按'C'進(jìn)行順序排列(行優(yōu)先);若指定了F',則將采用FORTRAN順序(列優(yōu)先)。subok:bool,如果其值為True,則子類將被傳遞,否則返回的數(shù)組將被強(qiáng)制為基類數(shù)組(默認(rèn))。ndmin:指定數(shù)組應(yīng)具有的最小維數(shù)。在Python中,數(shù)組的定義是廣義的,數(shù)組的元素可以是任意數(shù)據(jù)類型,如可以是數(shù)值、字符串等。數(shù)組的創(chuàng)建01一維數(shù)組一維數(shù)組是最簡(jiǎn)單的數(shù)組,只有一個(gè)下標(biāo)。一維數(shù)組相當(dāng)于向量。二維數(shù)組二維數(shù)組在概念上是二維的,即其下標(biāo)在兩個(gè)方向上變化,下標(biāo)變量在數(shù)組中的位置也處于一個(gè)平面之中。二維數(shù)組相當(dāng)于矩陣,因此,矩陣是數(shù)組的子集。多維數(shù)組在NumPy中,一個(gè)陣列如果具有兩個(gè)以上的維度,則稱為多維數(shù)組。NumPy中的多維數(shù)組是正常的二維矩陣的延伸。數(shù)組的創(chuàng)建01創(chuàng)建新數(shù)組asarray函數(shù)asarray函數(shù)類似于array,可以用來(lái)創(chuàng)建數(shù)組。該函數(shù)的調(diào)用格式如下:參數(shù)說(shuō)明如下。a:任意形式的輸入?yún)?shù),可以是列表、列表的元組、元組、元組的元組、元組的列表、多維數(shù)組等。dtype:數(shù)據(jù)類型。order:指定在計(jì)算機(jī)內(nèi)存中的存儲(chǔ)元素的順序,包括'C'(行優(yōu)先)和F(列優(yōu)先)。數(shù)組的創(chuàng)建01frombuffer函數(shù)frombuffer函數(shù)用于實(shí)現(xiàn)動(dòng)態(tài)數(shù)組,通過(guò)buffer輸入?yún)?shù),以流的形式讀入并轉(zhuǎn)化成ndarray對(duì)象。該函數(shù)的調(diào)用格式如下:參數(shù)說(shuō)明如下。buffer:可以是任意對(duì)象,會(huì)以流的形式讀入。dtype:返回?cái)?shù)組的數(shù)據(jù)類型,可選。count:讀取的數(shù)據(jù)數(shù)量,默認(rèn)為-1,即讀取所有數(shù)據(jù)。offset:讀取的起始位置,默認(rèn)為0。數(shù)組的創(chuàng)建01fromiter函數(shù)fromiter函數(shù)從可迭代對(duì)象中建立ndarray對(duì)象,返回一維數(shù)組。該函數(shù)的調(diào)用格式如下:參數(shù)說(shuō)明如下。iterable:可迭代對(duì)象。dtype:數(shù)組的數(shù)據(jù)類型。count:讀取的數(shù)據(jù)數(shù)量,默認(rèn)為-1,即讀取所有數(shù)據(jù)。數(shù)組的創(chuàng)建01初始化數(shù)組函數(shù)數(shù)組的初始化就是為其賦初值,即向這個(gè)數(shù)組中裝入有意義的數(shù)據(jù),在程序設(shè)計(jì)中,數(shù)組初始化很重要。在NumPy模塊庫(kù)中,包含幾種初始化函數(shù),如表3-2所示。數(shù)組的創(chuàng)建01數(shù)組的屬性創(chuàng)建數(shù)組后,可以通過(guò)設(shè)置數(shù)組的屬性來(lái)實(shí)現(xiàn)對(duì)數(shù)組的操作,在NumPy數(shù)組中,ndarray的對(duì)象屬性如表3-3所示。02特殊數(shù)組特殊數(shù)組02數(shù)值數(shù)組NumPy提供了一系列元素為同一數(shù)值的數(shù)組函數(shù),下面分別進(jìn)行介紹??諗?shù)組在NumPy中,空數(shù)組使用empty命令表示。該函數(shù)的調(diào)用格式如下:特殊數(shù)組02空數(shù)組shape:指定數(shù)組的形狀,(m,n)表示生成m行n列的數(shù)組。dtype:定義數(shù)據(jù)類型,指定為'int8'、'uint8'、'int16'、'uint16'、'int32'、'uint32'、'int64'、'uint64'或提供zeros支持的其他類的名稱。默認(rèn)為浮點(diǎn)數(shù),即dtype=float。order:'C'表示生成C語(yǔ)言的行數(shù)組,'F'表示生成FORTRAN語(yǔ)言的列數(shù)組。特殊數(shù)組02全0數(shù)組在NumPy中,全0數(shù)組使用zeros命令表示。該函數(shù)的調(diào)用格式如下:參數(shù)說(shuō)明如下。shape:指定數(shù)組的形狀,(m,n)表示生成m行n列的數(shù)組。dtype:定義數(shù)據(jù)類型,指定為'int8'、'uint8'、'int16'、'uint16'、'int32'、'uint32'、'int64'、'uint64'或提供zeros支持的其他類的名稱。默認(rèn)為浮點(diǎn)數(shù),即dtype=float。order:'C'表示生成C語(yǔ)言的行數(shù)組,'F'表示生成FORTRAN語(yǔ)言的列數(shù)組。特殊數(shù)組02全1數(shù)組在NumPy中,全1數(shù)組使用ones命令表示。該函數(shù)的調(diào)用格式如下:參數(shù)說(shuō)明如下。shape:指定數(shù)組的形狀。dtype:定義數(shù)據(jù)類型。fillvalue:標(biāo)量(無(wú)向量),表示填充數(shù)組的值。order:'C'用于C語(yǔ)言的行數(shù)組,或者F用于FORTRAN語(yǔ)言的列數(shù)組。特殊數(shù)組02指定數(shù)值數(shù)組在NumPy中,使用full函數(shù)創(chuàng)建數(shù)值數(shù)組,該數(shù)組元素均為指定數(shù)值。該函數(shù)的調(diào)用格式如下:參數(shù)說(shuō)明如下。shape:指定數(shù)組的形狀,數(shù)組的一維shape為(m)或(m,),(m,n)表示生成m行n列的二維數(shù)組。dtype:定義數(shù)據(jù)類型,指定為'int8'、'uint8'、'int16'、'uint16'、'int32'、'fuint32'、'int64'、'uint64'或提供zeros支持的其他類的名稱。默認(rèn)為浮點(diǎn)數(shù),即dtype=float。order:'C'表示生成C語(yǔ)言的行數(shù)組,'F'表示生成FORTRAN語(yǔ)言的列數(shù)組。特殊數(shù)組02隨機(jī)數(shù)組隨機(jī)數(shù)組,顧名思義,隨機(jī)生成、沒(méi)有規(guī)律,因此每一次生成的隨機(jī)數(shù)組不同。numpy.random模塊可方便地生成隨機(jī)數(shù)組,并返回指定范圍內(nèi)的一個(gè)整數(shù)或浮點(diǎn)數(shù)。0到1的隨機(jī)數(shù)組rand和random函數(shù)生成(0.0,1.0)區(qū)間的隨機(jī)浮點(diǎn)數(shù)數(shù)組,size表示數(shù)組大小。該函數(shù)的調(diào)用格式如下:特殊數(shù)組02指定區(qū)間的隨機(jī)數(shù)組randint函數(shù)用于在指定區(qū)間內(nèi)生成隨機(jī)整數(shù)數(shù)組。該函數(shù)的調(diào)用格式如下:其中,(low,hight)為取值區(qū)間,size用于指定數(shù)組的形狀。特殊數(shù)組02單位數(shù)組在NumPy中,eye函數(shù)用于創(chuàng)建指定大小的單位數(shù)組。該函數(shù)的調(diào)用格式如下:參數(shù)說(shuō)明如下。N和M:表示數(shù)組大小,生成單位數(shù)組。k:對(duì)角元素的索引。dtype:定義數(shù)據(jù)類型,默認(rèn)為浮點(diǎn)數(shù)。order:'C'表示生成C語(yǔ)言的行數(shù)組,'F'表示生成FORTRAN語(yǔ)言的列數(shù)組。在NumPy中,identity函數(shù)用于創(chuàng)建n×n的單位數(shù)組。該函數(shù)的調(diào)用格式如下:特殊數(shù)組02概率分布數(shù)組概率分布是指用于表述隨機(jī)變量取值的概率規(guī)律。在自然現(xiàn)象和社會(huì)現(xiàn)象中,大量隨機(jī)變量都服從或近似服從不同種類的分布。在Python中,NumPy模塊庫(kù)的random子模塊中包含一些生成服從指定分布隨機(jī)數(shù)組的函數(shù),具體的調(diào)用格式如表3-4所示。特殊數(shù)組0203數(shù)組運(yùn)算數(shù)組運(yùn)算03數(shù)組的數(shù)學(xué)運(yùn)算基本運(yùn)算數(shù)組的基本運(yùn)算包括加、減、乘、除、乘方等,與線性代數(shù)中的定義是一樣的,相應(yīng)的運(yùn)算符為“+”“-”“*”“\”“**”。數(shù)組的基本運(yùn)算如下:在數(shù)組間進(jìn)行加、減、乘、除運(yùn)算時(shí),數(shù)組計(jì)算的默認(rèn)行為是逐項(xiàng)計(jì)算的。數(shù)組運(yùn)算03數(shù)組點(diǎn)積對(duì)于數(shù)組a、b,它們的點(diǎn)積計(jì)算公式如下:若a、b是兩個(gè)一維數(shù)組,那么計(jì)算的是這兩個(gè)數(shù)組對(duì)應(yīng)下標(biāo)元素的乘積和(數(shù)學(xué)上稱為內(nèi)積)。若a、b是兩個(gè)二維數(shù)組,那么計(jì)算的是兩個(gè)數(shù)組的矩陣乘積。若a、b是兩個(gè)多維數(shù)組,那么結(jié)果數(shù)組中的每個(gè)元素都是數(shù)組a的最后一維上的所有元素與數(shù)組b的倒數(shù)第二維上的所有元素的乘積和。在NumPy中,dot函數(shù)用于計(jì)算數(shù)組的點(diǎn)積。該函數(shù)的調(diào)用形式如下:其中,out用于保存輸出結(jié)果,需要說(shuō)明的是,兩個(gè)數(shù)組必須同維。數(shù)組運(yùn)算03數(shù)組的索引在Python中,一個(gè)數(shù)組可以分解為多個(gè)數(shù)組元素,這些數(shù)組元素可以是基本數(shù)據(jù)類型或構(gòu)造類型。數(shù)組的索引和切片都是對(duì)數(shù)組元素的引用。索引值索引數(shù)組元素引用的方式如表3-7所示。數(shù)組運(yùn)算03數(shù)組運(yùn)算03choice函數(shù)除了使用索引和切片輸出數(shù)組元素,NumPy模塊中還提供了choice函數(shù),用于從給定的一維數(shù)組中隨機(jī)采樣。該函數(shù)的調(diào)用格式如下:參數(shù)說(shuō)明如下。a:如果是一維數(shù)組,就表示從這個(gè)一維數(shù)組中隨機(jī)采樣;如果是int型,就表示從0到a-1這個(gè)序列中隨機(jī)采樣。size:采樣結(jié)果的數(shù)量,默認(rèn)為1,可以是整數(shù),表示要采樣的數(shù)量;也可以為tuple。replace:采樣的樣本是否要更換,當(dāng)將其指定為True時(shí),采樣會(huì)有重復(fù);當(dāng)將其指定為False時(shí),采樣不會(huì)重復(fù)。p:指定數(shù)組中每個(gè)元素采樣的概率,默認(rèn)為None,表示a中每個(gè)元素被采樣的概率都相同。數(shù)組運(yùn)算03take函數(shù)take函數(shù)用于沿軸取數(shù)組中的元素。該函數(shù)的調(diào)用格式如下:參數(shù)說(shuō)明如下。a:輸入數(shù)組。indices:要獲取的值的索引。axis:抽取元素的軸。out:將結(jié)果放入數(shù)組。mode:指定出現(xiàn)超出數(shù)組范圍的索引后需要執(zhí)行的行為模式。其中,'raise'表示引發(fā)錯(cuò)誤、'wrap'表示循環(huán)、'clip'表示剪輯到指定范圍。數(shù)組運(yùn)算03choose函數(shù)choose函數(shù)按照索引對(duì)數(shù)組的元素進(jìn)行選擇,其調(diào)用格式如下:參數(shù)說(shuō)明如下。a:索引數(shù)組,其中的數(shù)必須是整數(shù)。mode:指定出現(xiàn)超出數(shù)組范圍的索引是執(zhí)行的行為模式。mode=raise'表示a中的數(shù)必須在[0,n-1]區(qū)間;mode='wrap'表示a中的數(shù)可以是任意整數(shù)(signed),對(duì)n取余,映射到[0,n-1]區(qū)間;mode=clip'表示a中的數(shù)可以是任意整數(shù)(signed),負(fù)數(shù)映射為0,大于n-1的數(shù)映射為n-1。數(shù)組運(yùn)算03數(shù)組元素運(yùn)算
數(shù)組是相同數(shù)據(jù)類型的元素的集合。數(shù)組中各元素的存儲(chǔ)是有先后順序的,它們?cè)趦?nèi)存中按照這個(gè)先后順序連續(xù)存放在一起。數(shù)組排序NumPy的random子模塊提供了兩種數(shù)組排序函數(shù):shufle函數(shù)對(duì)原數(shù)組進(jìn)行隨機(jī)排列,permutation函數(shù)返回一個(gè)隨機(jī)排列的數(shù)組。數(shù)組運(yùn)算03遍歷數(shù)組遍歷數(shù)組是指把數(shù)組中的每個(gè)數(shù)都讀一遍,Python提供了兩種遍歷數(shù)組并輸出所有元素的方法。一般情況下,使用for循環(huán)遍歷數(shù)組元素。數(shù)組迭代。NumPy模塊庫(kù)中的nditer函數(shù)提供了一種靈活訪問(wèn)一個(gè)或多個(gè)數(shù)組元素的方式。該函數(shù)的調(diào)用格式如下:數(shù)組運(yùn)算03數(shù)組元素的增減數(shù)組元素用整個(gè)數(shù)組的名字和它在數(shù)組中的位置來(lái)表示。因?yàn)閿?shù)組元素的下標(biāo)是從0開(kāi)始的,所以索引i表示數(shù)組的第i+1個(gè)元素。例如,a[0]表示名字為a的數(shù)組中的第1個(gè)元素,a[1]代表數(shù)組a的第2個(gè)元素,依次類推。數(shù)組元素的增減是最基本的數(shù)組元素操作,常用的數(shù)組元素的增減命令如表3-8所示。數(shù)組運(yùn)算0304矩陣操作矩陣操作04創(chuàng)建矩陣矩陣只能是二維的,而數(shù)組可以是任意維度的,矩陣和數(shù)組在數(shù)學(xué)運(yùn)算上會(huì)有不同的結(jié)構(gòu)。除了維度不同,矩陣是matrix對(duì)象,數(shù)組是ndarray對(duì)象。矩陣是由m×n個(gè)數(shù)ay(i=1,2,…,m;j=1,2,…,n)排成的m行n列數(shù)表,記為。稱為m×n矩陣,也可以記成a,或Amxn。其中,i表示行數(shù),j表示列數(shù)。若m=n,則該矩陣為n階矩陣(n階方陣)。矩陣的生成主要有兩種方法,分別為采用matrix函數(shù)創(chuàng)建矩陣和采用mat函數(shù)創(chuàng)建矩陣。矩陣操作04matrix函數(shù)在NumPy中,matrix函數(shù)用于創(chuàng)建矩陣。該函數(shù)的調(diào)用形式如下:參數(shù)說(shuō)明如下。data:表示定義矩陣的數(shù)據(jù),可以是ndarray對(duì)象或字符形式,矩陣的換行必須用分號(hào)(;)隔開(kāi),內(nèi)部數(shù)據(jù)必須為字符串形式(''),矩陣的元素之間必須以空格隔開(kāi)。dtype:定義數(shù)據(jù)類型。copy:bool類型,定義是否引用內(nèi)置對(duì)象。矩陣操作04mat函數(shù)mat函數(shù)用來(lái)創(chuàng)建一個(gè)矩陣。該函數(shù)中的數(shù)據(jù)可以為字符串,以分號(hào)隔開(kāi);或者為列表形式,以逗號(hào)隔開(kāi)。該函數(shù)的調(diào)用形式如下:參數(shù)說(shuō)明如下。data:表示定義矩陣的數(shù)據(jù)。dtype:定義數(shù)據(jù)類型。mat函數(shù)可以看作matrix函數(shù)的特例,即copy=False時(shí)的matrix。矩陣操作04向量運(yùn)算向量是由n個(gè)數(shù)a?,a?,…,a,組成的有序數(shù)組,記為。叫作n維向量,向量a的第i個(gè)分量稱為a。矩陣操作04向量生成由有限個(gè)向量組成的向量組可以構(gòu)成矩陣。如果A=(a)是m×n矩陣或數(shù)組,那么A有m個(gè)n維行向量或n個(gè)m維列向量。矩陣操作04向量乘法一個(gè)行向量乘以一個(gè)列向量稱為向量的內(nèi)積,又叫作點(diǎn)積,結(jié)果是一個(gè)數(shù)值。一個(gè)列向量乘以一個(gè)行向量稱為向量的外積,結(jié)果是一個(gè)矩陣。在NumPy中,vdot函數(shù)用于計(jì)算向量的點(diǎn)積。該函數(shù)的調(diào)用形式如下:其中,out用于保存輸出結(jié)果,需要說(shuō)明的是,a和b必須同維。矩陣操作04統(tǒng)計(jì)函數(shù)NumPy模塊庫(kù)的核心是基于數(shù)組的運(yùn)算,數(shù)組的運(yùn)算效率是最高的。在統(tǒng)計(jì)分析過(guò)程中,經(jīng)常會(huì)使用NumPy模塊庫(kù)的函數(shù)。NumPy模塊庫(kù)用于數(shù)理統(tǒng)計(jì)的函數(shù)是較為簡(jiǎn)單的,涉及的數(shù)學(xué)知識(shí)是大家都很熟悉的數(shù)據(jù)分析,如求均值與方差等。在數(shù)學(xué)分析中,在給定范圍內(nèi)(相對(duì)極值)或函數(shù)的整個(gè)域(全局或絕對(duì)極值),函數(shù)的最大值和最小值統(tǒng)稱為極值(極數(shù))。NumPy中的極值統(tǒng)計(jì)函數(shù)如表3-9所示。矩陣操作04矩陣操作04NumPy中的數(shù)學(xué)統(tǒng)計(jì)運(yùn)算函數(shù)如表3-10所示。感謝觀看,再見(jiàn)!Python數(shù)據(jù)分析Python數(shù)據(jù)分析數(shù)據(jù)分析庫(kù)Pandas第四章01Pandas數(shù)據(jù)結(jié)構(gòu)Pandas數(shù)據(jù)結(jié)構(gòu)01一維數(shù)組SeriesSeries是一種類似于一維數(shù)組的對(duì)象,由一組數(shù)據(jù)(NumPy中的數(shù)據(jù)類型)及一組與之相關(guān)的數(shù)據(jù)標(biāo)簽(索引)組成。創(chuàng)建Series在Pandas中,Series函數(shù)用來(lái)創(chuàng)建一維數(shù)組對(duì)象Series。它的使用格式如下:Pandas數(shù)據(jù)結(jié)構(gòu)01創(chuàng)建Series對(duì)象后,可以通過(guò)設(shè)置Series屬性達(dá)到修改Series的目的。Series常用屬性如表4-1所示。Pandas數(shù)據(jù)結(jié)構(gòu)01Series常用函數(shù)Series集成了ndarray和dict的優(yōu)點(diǎn),可以使用ndarray或dict的所有索引操作和函數(shù)。Series常用函數(shù)如表4-2所示。Pandas數(shù)據(jù)結(jié)構(gòu)01二維數(shù)組DataFrameDataFrame是一個(gè)表格型的數(shù)據(jù)結(jié)構(gòu),含有一組有序的列,每列可以是不同的值類型(數(shù)值、字符串、布爾值等)。DataFrame既有行索引又有列索引,可以看作由Series組成的字典(使用同一個(gè)索引)。DataFrame中的數(shù)據(jù)是以一個(gè)或多個(gè)二維塊存放的,而不是列表、字典或別的一維數(shù)據(jù)結(jié)構(gòu)。Pandas數(shù)據(jù)結(jié)構(gòu)01DataFrame生成在Pandas中,DataFrame函數(shù)用來(lái)創(chuàng)建二維數(shù)組對(duì)象DataFrame。它的使用格式如下:參數(shù)說(shuō)明如下。data:一組數(shù)據(jù)(ndarray、Series、map、list、dict等類型)。DataFrame生成最常用的一種方法是直接輸入一個(gè)由等長(zhǎng)列表或NumPy數(shù)組組成的字典。index:索引值,或者可以稱為行標(biāo)簽。columns:列標(biāo)簽,默認(rèn)為0,1,2,…,n。dtype:數(shù)據(jù)類型。copy:復(fù)制數(shù)據(jù),默認(rèn)為False。Pandas數(shù)據(jù)結(jié)構(gòu)01DataFrame屬性通過(guò)DataFrame屬性可以查看定義的數(shù)據(jù)。DataFrame常用屬性如表4-3所示。02導(dǎo)入數(shù)據(jù)導(dǎo)入數(shù)據(jù)02讀取Excel文件openpyxl模塊庫(kù)是一個(gè)讀/寫(xiě)Excel2010文檔的Python庫(kù),能夠同時(shí)讀取和修改Excel文檔。執(zhí)行其他與Excel相關(guān)的項(xiàng)目(包括讀或?qū)慐xcel),需要安裝、加載該模塊庫(kù)。安裝openpyxl模塊庫(kù)后,要想在程序中使用該模塊庫(kù),還需要加以導(dǎo)入。在Pandas中,使用readexcel函數(shù)讀取Excel自帶的xls或xlsx文件中的數(shù)據(jù)。該函數(shù)的使用格式如下。導(dǎo)入數(shù)據(jù)02導(dǎo)入數(shù)據(jù)02導(dǎo)入數(shù)據(jù)02寫(xiě)入Excel文件在Pandas中,從文件中讀取的數(shù)據(jù)以DataFrame或Series格式保存在內(nèi)存中,toexcel函數(shù)可以將數(shù)據(jù)保存為xls或xlsx文件。該函數(shù)的使用格式如下:導(dǎo)入數(shù)據(jù)0203數(shù)據(jù)處理數(shù)據(jù)處理03數(shù)據(jù)清洗數(shù)據(jù)清洗是對(duì)一些沒(méi)有用的數(shù)據(jù)進(jìn)行處理的過(guò)程。在數(shù)據(jù)分析工作中,很多數(shù)據(jù)集存在數(shù)據(jù)缺失、數(shù)據(jù)格式錯(cuò)誤、錯(cuò)誤數(shù)據(jù)或重復(fù)數(shù)據(jù)的情況。如果要使數(shù)據(jù)分析更加準(zhǔn)確,就需要對(duì)這些沒(méi)有用的數(shù)據(jù)進(jìn)行處理。數(shù)據(jù)處理03數(shù)據(jù)缺失在數(shù)據(jù)輸入過(guò)程中,很容易出現(xiàn)數(shù)據(jù)遺漏現(xiàn)象,Pandas對(duì)象的所有描述性統(tǒng)計(jì)默認(rèn)都不包括缺失數(shù)據(jù)。因此,在數(shù)值數(shù)據(jù)中,Pandas使用浮點(diǎn)值NaN(NotaNumber)表示缺失數(shù)據(jù)。這樣可以很明顯地發(fā)現(xiàn)缺失數(shù)據(jù),方便修改。數(shù)據(jù)處理01重復(fù)數(shù)據(jù)unique函數(shù)用于獲取Series中的唯一值數(shù)組,刪除重復(fù)數(shù)據(jù)。數(shù)據(jù)格式化數(shù)據(jù)格式化可以增強(qiáng)數(shù)據(jù)的可讀性,如統(tǒng)一數(shù)據(jù)的小數(shù)點(diǎn)位數(shù)、添加千位分隔符。還可以實(shí)現(xiàn)特定的功能,如轉(zhuǎn)換為百分比數(shù)據(jù),百分比數(shù)據(jù)主要用于成績(jī)分?jǐn)?shù)等統(tǒng)計(jì)計(jì)算。數(shù)據(jù)處理03數(shù)據(jù)轉(zhuǎn)換當(dāng)獲得數(shù)據(jù)時(shí),首先需要確定的是正確類型的數(shù)據(jù),Pandas擴(kuò)展了NumPy的類型系統(tǒng),用dtype屬性顯示元素的數(shù)據(jù)類型。Pandas主要有以下幾種數(shù)據(jù)類型。字符串類型:object。整數(shù)類型:int64、int32、int16、int8。無(wú)符號(hào)整數(shù):uint64、uint32、uint16、uint8。浮點(diǎn)數(shù)類型:float64、float32。日期和時(shí)間類型:datetime64[ns]、datetime64[ns,tz]、timedelta[ns]。布爾類型:bool。數(shù)據(jù)處理03當(dāng)利用Pandas進(jìn)行數(shù)據(jù)處理的時(shí)候,經(jīng)常會(huì)遇到數(shù)據(jù)類型的問(wèn)題,一般需要通過(guò)數(shù)據(jù)類型的轉(zhuǎn)化,只有這樣才能進(jìn)行后續(xù)的數(shù)據(jù)操作。表4-6中列出了關(guān)于數(shù)據(jù)轉(zhuǎn)換的函數(shù)。數(shù)據(jù)處理03數(shù)據(jù)合并在實(shí)際處理數(shù)據(jù)的過(guò)程中,經(jīng)常會(huì)遇到將多個(gè)表連接起來(lái)進(jìn)行數(shù)據(jù)的處理和分析的情況,Pandas中也提供了幾種方法來(lái)實(shí)現(xiàn)數(shù)據(jù)合并功能。merge函數(shù)基于兩個(gè)DataFrame的共同列進(jìn)行合并。該函數(shù)的使用格式如下:04數(shù)據(jù)統(tǒng)計(jì)數(shù)據(jù)統(tǒng)計(jì)04數(shù)據(jù)提取在數(shù)據(jù)分析過(guò)程中,并不是所有的數(shù)據(jù)都是我們想要的。這就需要提取部分?jǐn)?shù)據(jù),從源數(shù)據(jù)中抽取部分或全部數(shù)據(jù)到目標(biāo)系統(tǒng),從而在目標(biāo)系統(tǒng)進(jìn)行數(shù)據(jù)加工利用,但是問(wèn)題是從哪取、何時(shí)取、如何取。數(shù)據(jù)的提取過(guò)程是將數(shù)據(jù)取出的過(guò)程,不同提取規(guī)則下提取的數(shù)據(jù)結(jié)果很難一致。數(shù)據(jù)統(tǒng)計(jì)04Pandas中的數(shù)據(jù)抽取函數(shù)如表4-8所示。數(shù)據(jù)統(tǒng)計(jì)04數(shù)據(jù)分類數(shù)據(jù)分類是將數(shù)據(jù)進(jìn)行一個(gè)自定義的分類,Pandas中提供了cut函數(shù)來(lái)實(shí)現(xiàn)數(shù)據(jù)分類。該函數(shù)的調(diào)用格式如下:數(shù)據(jù)統(tǒng)計(jì)04數(shù)據(jù)排序數(shù)據(jù)排序通過(guò)瀏覽數(shù)據(jù)發(fā)現(xiàn)一些明顯的特征或趨勢(shì),找到解決問(wèn)題的線索,同時(shí),數(shù)據(jù)排序本身就是數(shù)據(jù)分析的目的之一。美國(guó)的《財(cái)富》雜志每年都要在全世界范圍內(nèi)排出500強(qiáng)企業(yè),通過(guò)這一信息,不僅可以了解自己企業(yè)所處的位置,清楚自己的差距,還可以從側(cè)面了解競(jìng)爭(zhēng)對(duì)手的狀況,有效制定企業(yè)的發(fā)展規(guī)劃和戰(zhàn)略目標(biāo)。數(shù)據(jù)排序是按一定順序?qū)?shù)據(jù)排列起來(lái),Pandas提供了sortvalues函數(shù),用于根據(jù)行、列進(jìn)行數(shù)據(jù)排序。該函數(shù)的調(diào)用格式如下。數(shù)據(jù)統(tǒng)計(jì)04數(shù)據(jù)統(tǒng)計(jì)04統(tǒng)計(jì)分組統(tǒng)計(jì)分組是統(tǒng)計(jì)學(xué)的基本統(tǒng)計(jì)方法之一,可使零散資料系統(tǒng)化。但怎樣使資料系統(tǒng)化,以及本著什么進(jìn)行歸類就取決于統(tǒng)計(jì)分組。在取得完整、正確的統(tǒng)計(jì)資料的前提下,統(tǒng)計(jì)分組的優(yōu)劣是決定整個(gè)數(shù)據(jù)統(tǒng)計(jì)成敗的關(guān)鍵,直接關(guān)系到數(shù)據(jù)分析的質(zhì)量。例如,將一所學(xué)校的人根據(jù)老師、學(xué)生、男性、女性、年齡、成績(jī)、特長(zhǎng)等標(biāo)志進(jìn)行分類統(tǒng)計(jì)。數(shù)據(jù)統(tǒng)計(jì)04groupby函數(shù)Pandas中的groupby函數(shù)用于對(duì)DataFrame對(duì)象進(jìn)行分組。該函數(shù)的調(diào)用格式如下:數(shù)據(jù)統(tǒng)計(jì)04groupby函數(shù)groupby函數(shù)返回包含有關(guān)組的信息,groupby對(duì)象利用groups屬性查看分組的信息,從返回的結(jié)果中可以看到不同分組的樣本在原數(shù)據(jù)框中的索引,如表4-12所示。數(shù)據(jù)統(tǒng)計(jì)04agg函數(shù)分組最主要的作用就是對(duì)各個(gè)組別進(jìn)行分組描述,簡(jiǎn)單來(lái)說(shuō),就是將一系列復(fù)雜的數(shù)據(jù)用幾個(gè)有代表性的數(shù)據(jù)進(jìn)行描述,進(jìn)而能夠直觀地解釋數(shù)據(jù)的規(guī)律。agg函數(shù)用來(lái)分別計(jì)算分組后每個(gè)組的最大值、最小值、和。數(shù)據(jù)計(jì)算函數(shù)如表4-13所示。05數(shù)據(jù)統(tǒng)計(jì)分析數(shù)據(jù)統(tǒng)計(jì)分析05集中趨勢(shì)分析集中趨勢(shì)分析是用各種起代表值作用的量度來(lái)反映變量數(shù)值趨向中心位置的一種資料分析方法,最常用的指標(biāo)有算術(shù)平均值、幾何平均值、中位數(shù)和眾數(shù)等。中位數(shù)中位數(shù)是按順序排列的一組數(shù)據(jù)中居于中間位置的數(shù)。平均數(shù)是通過(guò)計(jì)算得到的,因此它會(huì)因每一個(gè)數(shù)據(jù)的變化而變化。而中位數(shù)是通過(guò)排序得到的,不受最大、最小兩個(gè)極端數(shù)值的影響。當(dāng)一組數(shù)據(jù)中的個(gè)別數(shù)據(jù)變動(dòng)較大時(shí),常用中位數(shù)來(lái)描述這組數(shù)據(jù)的集中趨勢(shì)。Pandas使用median函數(shù)計(jì)算分組后的中位數(shù)。數(shù)據(jù)統(tǒng)計(jì)分析05眾數(shù)眾數(shù)是樣本觀測(cè)值在頻數(shù)分布表中頻數(shù)最多的那一組的組中值。在統(tǒng)計(jì)實(shí)踐中,常利用眾數(shù)來(lái)近似反映社會(huì)經(jīng)濟(jì)現(xiàn)象的一般水平,反映一組數(shù)據(jù)的集中程度。在日常生活中,諸如“最佳”“最受歡迎”“最滿意”等都與眾數(shù)有關(guān)系,反映了一種最普遍的傾向。例如,說(shuō)明某次考試學(xué)生成績(jī)最集中的水平,說(shuō)明城鎮(zhèn)居民最普遍的生活水平等。數(shù)據(jù)統(tǒng)計(jì)分析05離散程度分析離散程度是指通過(guò)數(shù)據(jù)間的差異程度來(lái)衡量風(fēng)險(xiǎn)大小的指標(biāo),最常用的指標(biāo)有方差和標(biāo)準(zhǔn)差等。標(biāo)準(zhǔn)差標(biāo)準(zhǔn)差是最常用的反映隨機(jī)變量分布離散程度的指標(biāo)。標(biāo)準(zhǔn)差越大,數(shù)據(jù)波動(dòng)越大;標(biāo)準(zhǔn)差越小,數(shù)據(jù)波動(dòng)越小。在Pandas中,std函數(shù)用來(lái)計(jì)算分組數(shù)據(jù)的標(biāo)準(zhǔn)差。數(shù)據(jù)統(tǒng)計(jì)分析05方差分析方差不僅表達(dá)了樣本偏離均值的程度,還揭示了樣本內(nèi)部彼此波動(dòng)的程度,在許多實(shí)際問(wèn)題中,研究方差,即偏離程度有著重要的意義。在樣本容量相同的情況下,方差越大,數(shù)據(jù)的波動(dòng)越大,越不穩(wěn)定。在Pandas中,var函數(shù)用來(lái)計(jì)算數(shù)據(jù)的方差。數(shù)據(jù)統(tǒng)計(jì)分析05協(xié)方差分析系統(tǒng)的方差分析存在明顯的弊端,無(wú)法控制分析中存在的某些隨機(jī)因素,從而影響分析結(jié)果的準(zhǔn)確度。協(xié)方差分析主要是在排除了協(xié)變量的影響后對(duì)修正后的主效應(yīng)進(jìn)行方差分析,是將線性回歸與方差分析結(jié)合起來(lái)的一種分析方法。在Pandas中,cov函數(shù)用來(lái)計(jì)算分組數(shù)據(jù)的協(xié)方差。數(shù)據(jù)統(tǒng)計(jì)分析05相關(guān)性分析協(xié)方差僅能進(jìn)行定性分析,并不能進(jìn)行定量分析,因此引出相關(guān)系數(shù)的概念。當(dāng)需要比較不同的兩組數(shù)據(jù)的離散程度時(shí),若兩組數(shù)據(jù)的測(cè)量尺度太大,或者數(shù)據(jù)的量綱不同,則不能直接使用標(biāo)準(zhǔn)差來(lái)比較,需要使用相關(guān)系數(shù)。在Pandas中,corr函數(shù)用來(lái)計(jì)算分組數(shù)據(jù)的相關(guān)系數(shù)。相關(guān)性分析用來(lái)研究現(xiàn)象之間是否存在某種依存關(guān)系,對(duì)具有依存關(guān)系的現(xiàn)象探討相關(guān)方向及相關(guān)程度。隨機(jī)變量X和Y的皮爾遜相關(guān)系數(shù)的定義為其中,Var(X)為X的方差;Var(Y)為Y的方差。數(shù)據(jù)統(tǒng)計(jì)分析05頻數(shù)分析頻數(shù)是指變量值中代表某種特征的數(shù)(標(biāo)志值)出現(xiàn)的次數(shù)。頻數(shù)分析用于計(jì)算定類數(shù)據(jù)的選擇頻數(shù)和比例。例如,調(diào)查研究對(duì)象的性別、年齡,通過(guò)這些問(wèn)題,可以了解研究對(duì)象的背景。頻數(shù)分析既可以用表的形式表示,又可以用圖形的形式表示。在Pandas中,count函數(shù)用來(lái)計(jì)算每個(gè)分組樣本的個(gè)數(shù),valuecounts函數(shù)用于計(jì)算一個(gè)Series中各值的出現(xiàn)頻率。感謝觀看,再見(jiàn)!Python數(shù)據(jù)分析Python數(shù)據(jù)分析數(shù)據(jù)可視化庫(kù)Matplotlib第五章01數(shù)據(jù)可視化數(shù)據(jù)可視化01數(shù)據(jù)可視化的作用數(shù)據(jù)反映著現(xiàn)實(shí)的世界,可人們更希望在這些數(shù)據(jù)中尋找規(guī)律,從而解決現(xiàn)實(shí)中的各種問(wèn)題,甚至掌握未來(lái)的發(fā)展趨勢(shì)。在現(xiàn)實(shí)生活中,如果僅僅給一個(gè)人提供純粹的數(shù)據(jù),則很可能會(huì)使他感到枯燥、乏味,而且難以提煉出所需的信息,這時(shí)就需要提供給他具有生動(dòng)性和表現(xiàn)力的圖形或圖像。不僅如此,對(duì)于有的信息,如果僅僅通過(guò)數(shù)字和文字來(lái)表達(dá),則可能需要幾百個(gè)字、幾千個(gè)字,甚至可能無(wú)法表達(dá),但是如果通過(guò)圖形,則能夠很簡(jiǎn)單地把這些信息傳達(dá)給他人,因此人們常說(shuō)“一圖勝千言”。數(shù)據(jù)可視化01現(xiàn)在科學(xué)家證實(shí),人的大腦分左腦和右腦兩部分。左腦主要具備語(yǔ)言、數(shù)學(xué)、邏輯性思考等功能,一般被稱為“學(xué)術(shù)腦”;而右腦主要具備觀察、空間、想象、圖畫(huà)等功能,一般被稱為“藝術(shù)腦”。由于人類對(duì)圖形、圖像等可視化符號(hào)的閱讀會(huì)激活右腦,因此,對(duì)圖形的處理效率比對(duì)數(shù)字、文本的處理效率高得多。數(shù)據(jù)可視化的目的是更明確、更有效地傳達(dá)信息而對(duì)數(shù)據(jù)進(jìn)行可視化處理。數(shù)據(jù)可視化可以利用計(jì)算機(jī)圖形和圖像處理技術(shù),將數(shù)據(jù)轉(zhuǎn)換成圖形或圖像而在屏幕上顯示出來(lái),并進(jìn)行交互處理,從而增強(qiáng)人類對(duì)這些數(shù)據(jù)所蘊(yùn)含的現(xiàn)象或規(guī)律的
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 民法典知識(shí)考試試題及答案
- 軟件開(kāi)發(fā)二手房買賣合同樣本
- 城市排水招投標(biāo)廉潔合同模板
- 墻繪裝飾施工合同
- 新能源項(xiàng)目招投標(biāo)合同風(fēng)險(xiǎn)防范
- 房屋戶外照明安裝合同
- 教育培訓(xùn)機(jī)構(gòu)裝修施工合同
- 國(guó)際實(shí)驗(yàn)室地暖系統(tǒng)安裝工程合同
- 政府辦公樓石材裝飾協(xié)議
- 勞動(dòng)合同簽訂與解除規(guī)范
- GB/T 16895.13-2022低壓電氣裝置第7-701部分:特殊裝置或場(chǎng)所的要求裝有浴盆或淋浴的場(chǎng)所
- 小升初語(yǔ)文暑期銜接 非連續(xù)性文本閱讀專練卷5人教部編版 (含答案)
- 關(guān)于每日英語(yǔ)短文朗讀3篇 英語(yǔ)四級(jí)口語(yǔ)考試短文朗讀范文
- 山西昔陽(yáng)安順樂(lè)安煤業(yè)有限公司礦山礦產(chǎn)資源開(kāi)發(fā)利用、地質(zhì)環(huán)境保護(hù)與土地復(fù)墾方案
- DB37-T 4612-2023 化妝品生產(chǎn)企業(yè)批生產(chǎn)記錄通用管理規(guī)范
- 某金屬公司套期保值案例
- 海康威視視頻車位誘導(dǎo)與反向?qū)ぼ囅到y(tǒng)與解決與方案
- 汽車維修工時(shí)定額單價(jià)標(biāo)準(zhǔn)
- 光伏發(fā)電工程施工組織設(shè)計(jì)
- 農(nóng)村人居環(huán)境整治干凈整潔村驗(yàn)收表
- 公文管理中的錯(cuò)誤
評(píng)論
0/150
提交評(píng)論