《統(tǒng)計(jì)學(xué)-基于Python》 課件全套 第1-11章 數(shù)據(jù)與Python語言-時(shí)間序列分析和預(yù)測_第1頁
《統(tǒng)計(jì)學(xué)-基于Python》 課件全套 第1-11章 數(shù)據(jù)與Python語言-時(shí)間序列分析和預(yù)測_第2頁
《統(tǒng)計(jì)學(xué)-基于Python》 課件全套 第1-11章 數(shù)據(jù)與Python語言-時(shí)間序列分析和預(yù)測_第3頁
《統(tǒng)計(jì)學(xué)-基于Python》 課件全套 第1-11章 數(shù)據(jù)與Python語言-時(shí)間序列分析和預(yù)測_第4頁
《統(tǒng)計(jì)學(xué)-基于Python》 課件全套 第1-11章 數(shù)據(jù)與Python語言-時(shí)間序列分析和預(yù)測_第5頁
已閱讀5頁,還剩308頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

StatisticswithPython

統(tǒng)計(jì)學(xué)

基于Python

課程內(nèi)容描述統(tǒng)計(jì)、推斷統(tǒng)計(jì)、其他方法使用軟件

Python

語言學(xué)分與課時(shí)3學(xué)分,1~17周,每周3課時(shí)課程簡介賈俊平2023/12/191.1數(shù)據(jù)與統(tǒng)計(jì)學(xué)1.2Python的初步使用第1章數(shù)據(jù)與Python語言

統(tǒng)計(jì)學(xué)(statistics)

分析數(shù)據(jù)的一門科學(xué),它所提供的是一套通用于所有學(xué)科領(lǐng)域的獲取數(shù)據(jù)、處理數(shù)據(jù)、分析數(shù)據(jù)并從數(shù)據(jù)中得出結(jié)論的原則和方法統(tǒng)計(jì)學(xué)是一套通用的數(shù)據(jù)分析方法,雖然這些方法可用于不同學(xué)科領(lǐng)域數(shù)據(jù)的分析,但它不是為某個(gè)特定的問題領(lǐng)域構(gòu)造的統(tǒng)計(jì)方法不是一成不變的,使用者在特定情況下需要根據(jù)所掌握的專業(yè)知識選擇使用這些方法,如果需要,還可以進(jìn)行必要的修正什么是統(tǒng)計(jì)學(xué)

1.1

數(shù)據(jù)與統(tǒng)計(jì)學(xué)數(shù)據(jù)分析(dataanalysis)

運(yùn)用統(tǒng)計(jì)方法對收集來的數(shù)據(jù)進(jìn)行分析,從中提取有用信息并得出結(jié)論的過程數(shù)據(jù)分析的目的是把隱藏在數(shù)據(jù)中的信息有效地提煉出來,從而找出所研究對象的內(nèi)在規(guī)律和特征在實(shí)際應(yīng)用中,數(shù)據(jù)分析可幫助人們做出判斷和決策,以便采取適當(dāng)行動(dòng)什么是數(shù)據(jù)分析

1.1

數(shù)據(jù)與統(tǒng)計(jì)學(xué)統(tǒng)計(jì)學(xué)提供的就是一套數(shù)據(jù)分析方法數(shù)據(jù)分析所用的方法就是統(tǒng)計(jì)方法數(shù)據(jù)分析方法——基本分類

1.1

數(shù)據(jù)與統(tǒng)計(jì)學(xué)從分析目的看

可以將數(shù)據(jù)分析分為描述性分析(descriptiveanalysis)、探索性分析(exploratoryanalysis)和驗(yàn)證性分析(confirmatoryanalysis)三大類描述性分析和是對數(shù)據(jù)進(jìn)行初步的整理、展視和概括性度量,以找出數(shù)據(jù)的基本特征;探索性分析側(cè)重于在數(shù)據(jù)之中發(fā)現(xiàn)新的特征,為形成某種理論或假設(shè)而對數(shù)據(jù)進(jìn)行的分析;驗(yàn)證性分析則側(cè)重于對已有理論或假設(shè)的證實(shí)或證偽從所使用的統(tǒng)計(jì)分析方法看可大致可分為描述統(tǒng)計(jì)(descriptivestatistics)和推斷統(tǒng)計(jì)(inferentialstatistics)兩大類描述統(tǒng)計(jì)是利用圖表形式對數(shù)據(jù)進(jìn)行匯總和展示,計(jì)算一些簡單的統(tǒng)計(jì)量推斷統(tǒng)計(jì)是根據(jù)樣本信息來推斷總體的特征,內(nèi)容包括參數(shù)估計(jì)和假設(shè)檢驗(yàn)數(shù)據(jù)分析方法從分析目的看描述性分析探索性分析驗(yàn)證性分析從統(tǒng)計(jì)方法看描述統(tǒng)計(jì)推斷統(tǒng)計(jì)商業(yè)軟件——不推薦使用

商業(yè)類軟件種類繁多,較有代表性的軟件有SAS、SPSS、Minitab、Stata等。多數(shù)人較熟悉的Excel雖然不是統(tǒng)計(jì)軟件,但提供了一些常用的統(tǒng)計(jì)函數(shù)以及數(shù)據(jù)分析工具這類軟件雖有不同的側(cè)重點(diǎn),但功能大同小異,基本上能滿足大多數(shù)人做數(shù)據(jù)分析的需要。商業(yè)類軟件使用相對簡單,容易上手主要問題是價(jià)格不菲,多數(shù)人難以接近,此外,更新速度慢,難以提供最新方法的解決方案數(shù)據(jù)分析工具

1.1

數(shù)據(jù)與統(tǒng)計(jì)學(xué)非商業(yè)軟件——推薦使用

非商業(yè)類軟件則不存在價(jià)格問題。目前較為流行的軟件有R語言和Python語言,二者都是免費(fèi)的開源平臺R語言的一種優(yōu)秀的統(tǒng)計(jì)軟件,它是一種統(tǒng)計(jì)計(jì)算語言。優(yōu)點(diǎn):更新速度快,可以包含最新方法的解決方案;提供豐富的數(shù)據(jù)分析和可視化技術(shù),功能十分強(qiáng)大。R軟件中的包(package)和函數(shù)均由統(tǒng)計(jì)專家編寫,函數(shù)中參數(shù)的設(shè)置也更符合統(tǒng)計(jì)和數(shù)據(jù)分析人員的思維方式和邏輯,并有強(qiáng)大的幫助功能和多種范例,初學(xué)者也很容易上手Python則是一種面向?qū)ο蟮慕忉屝透呒壘幊陶Z言,并擁有豐富而強(qiáng)大的開源第三方庫,也具有強(qiáng)大的數(shù)據(jù)分析可視化功能。Python于R的側(cè)重點(diǎn)略有不同,R的主要功能是數(shù)據(jù)分析和可視化,且功能強(qiáng)大,多數(shù)分析都可以由R提供的函數(shù)實(shí)現(xiàn),不需要太多的編程,代碼簡單,容易上手。Python的側(cè)重點(diǎn)則是編程,具有很好的普適性,但數(shù)據(jù)分析并不是其側(cè)重點(diǎn),雖然從理論上說都可以實(shí)現(xiàn),但往往需要編寫很長的代碼,幫助功能也不夠強(qiáng)大,這對數(shù)據(jù)分析的初學(xué)者來說可能顯得麻煩,但仍然不失為一種有效的數(shù)據(jù)分析工具數(shù)據(jù)分析工具

1.1

數(shù)據(jù)與統(tǒng)計(jì)學(xué)數(shù)據(jù)及其來源——變量和數(shù)據(jù)

1.1

數(shù)據(jù)與統(tǒng)計(jì)學(xué)數(shù)據(jù)(data)變量的觀測結(jié)果數(shù)據(jù)是個(gè)廣義的概念,任何可觀測并有記錄的信息都可以稱為數(shù)據(jù),它不僅僅包括數(shù)字,也包括文本、圖像等。比如,一篇文章也可以看作數(shù)據(jù),一幅照片也可以視為數(shù)據(jù),等等變量(variable)描述所觀察對象某種特征的概念,其特點(diǎn)是從一次觀察到下一次觀察可能會出現(xiàn)不同結(jié)果觀察一個(gè)企業(yè)的銷售額,這個(gè)月和上個(gè)月不同;觀察股票市場上漲股票的家數(shù),今天與昨天數(shù)量不一樣;觀察一個(gè)班學(xué)生的生活費(fèi)支出,一個(gè)人和另一個(gè)人不一樣;投擲一枚骰子觀察其出現(xiàn)的點(diǎn)數(shù),這次投擲的結(jié)果和下一次也不一樣“企業(yè)銷售額”、“上漲股票的家數(shù)”、“生活費(fèi)支出”、“投擲一枚骰子出現(xiàn)的點(diǎn)數(shù)”等就是變量數(shù)據(jù)及其來源——變量和數(shù)據(jù)的分類

1.1

數(shù)據(jù)與統(tǒng)計(jì)學(xué)類別變量(categoricalvariable)取值為對象屬性或類別以及區(qū)間值(intervalvalue)的變量,也稱分類變量(classifiedvariable)或定性變量(qualitativevariable)可分為無序類別變量(disorderedcategoryvariable)和有序類別變量(orderedcategoryvariable)兩種無序類別變量也稱名義(nominal)值變量,其取值的各類別間是不可以排序的有序類別變量也稱順序(ordinal)值變量,其取值的各類別間可以排序只取兩個(gè)值的類別變量也稱為布爾變量(booleanvariable)或二值變量(binaryvariable類別變量(categoricalvariable)數(shù)值變量(metricvariable)是取值為數(shù)字的變量,也稱為定量變量(quantitativevariable)可以分為離散變量(discretevariable)和連續(xù)變量(continuousvariable)離散變量的取值是只能取有限個(gè)值的變量,而且其取值可以列舉,通常(但不一定)是整數(shù)連續(xù)變量是可以在一個(gè)或多個(gè)區(qū)間中取任何值的變量,它的取值是連續(xù)不斷的數(shù)據(jù)及其來源——變量和數(shù)據(jù)的分類

1.1

數(shù)據(jù)與統(tǒng)計(jì)學(xué)數(shù)據(jù)是變量的觀測結(jié)果,因此,數(shù)據(jù)的分類與變量的分類是相同的本書混合使用變量和數(shù)據(jù)這兩個(gè)概念在講述分析方法時(shí)多使用變量的概念,在例題分析中多使用數(shù)據(jù)的概念了解變量或數(shù)據(jù)的分類十分必要,因?yàn)椴煌淖兞炕驍?shù)據(jù)適用的分析方法是不同的變量分類類別變量(定性)無序類別變量(名義值)有序類別變量(順序值)布爾變量(二值)數(shù)值變量(定量)離散變量(離散值)連續(xù)變量(連續(xù)值)時(shí)間變量(定性或定量)定性:離散值定量:連續(xù)值間接來源——二手?jǐn)?shù)據(jù)直接來源——抽取樣本總體(population):包含所研究的全部個(gè)體(或數(shù)據(jù))的集合樣本(sample):從總體中抽取的一部分元素的集合樣本量(samplesize):構(gòu)成樣本的元素的數(shù)目概率抽樣方法根據(jù)已知的概率抽取樣本元素,也稱隨機(jī)抽樣數(shù)據(jù)及其來源——數(shù)據(jù)來源和抽樣方法簡單隨機(jī)抽樣從總體N個(gè)單位(元素)中隨機(jī)地抽取n個(gè)單位作為樣本,使得總體中每一個(gè)元素都有相同的機(jī)會(概率)被抽中抽取元素的具體方法有放回抽樣和無放回抽樣分層抽樣將總體單位按某種特征或規(guī)則劃分為不同層,再從不同的層中隨機(jī)地抽取樣本系統(tǒng)抽樣將總體中的所有單位(抽樣單位)按一定順序排列,在規(guī)定的范圍內(nèi)隨機(jī)地抽取一個(gè)單位作為初始單位,然后按事先規(guī)定好的規(guī)則確定其他樣本元素整群抽樣將總體中若干個(gè)單位合并為組(群),抽樣時(shí)直接抽取群,再對中選群中的所有單位全部實(shí)施調(diào)查

1.1

數(shù)據(jù)與統(tǒng)計(jì)學(xué)Python

Python是一種面向?qū)ο蟮慕忉屝透呒壘幊陶Z言簡單易學(xué)、免費(fèi)、擁有豐富而強(qiáng)大的開源第三方庫被廣泛應(yīng)用于系統(tǒng)和網(wǎng)絡(luò)編程、數(shù)據(jù)處理、云計(jì)算、機(jī)器學(xué)習(xí)和人工智能等多個(gè)領(lǐng)域已成為目前廣泛使用的編程語言之

Python與Anaconda

1.2

Python的初步使用Anaconda

Anaconda是一種適合數(shù)據(jù)分析的Python開發(fā)環(huán)境,也是一個(gè)開源是Python版本Anaconda包含了多個(gè)基本模塊,如numpy,pandas,matplotlib,IPython等,安裝Anaconda時(shí),這些模塊也就一并安裝好了Anaconda還內(nèi)置了JupyterNotebook開發(fā)環(huán)境,十分方便代碼的編寫和修改本書代碼編寫和運(yùn)行使用的就是Anaconda平臺的JupyterNotebook界面,推薦初學(xué)者使用Anaconda的下載與安裝進(jìn)入官網(wǎng)(),點(diǎn)擊右上角“GetStarted”選擇Anaconda個(gè)人版選項(xiàng),并單擊在彈出的頁面中選擇自己的電腦系統(tǒng),如果是Windows系統(tǒng),需要選擇電腦系統(tǒng)的位數(shù),比如64位,即可以下載

Anaconda的下載與安裝

1.2

Python的初步使用Anaconda界面有幾種不同的界面可供使用,如JupyterNotebook,Spyder,Ipython等,可根據(jù)自身偏好選擇JupyterNotebook是一個(gè)交互式編輯器,它是以網(wǎng)頁的形式打開程序,可以在線或非在線編寫代碼和運(yùn)行代碼,代碼的運(yùn)行結(jié)果可以直接在代碼塊下顯示,對使用者這而言比較直觀,易于代碼的編寫和修改JupyterNotebook還可以使用Markdown和HTML來創(chuàng)建包含代碼塊和標(biāo)題或注釋的文檔,便于代碼塊的區(qū)分本書代碼編寫和運(yùn)行均使用JupyterNotebook

Anaconda——?jiǎng)?chuàng)建JupyterNotebook文件創(chuàng)建JupyterNotebook文件打開JupyterNotebook,點(diǎn)擊右上角的New按鈕,選擇Python3,即可以創(chuàng)建一個(gè)Python文件在JupyterNoteboo中編寫代碼在in[]后的代碼框(稱為“cell”)中可輸入代碼。點(diǎn)擊“運(yùn)行”按鈕或使用組合鍵<Ctri+Enter>,即可運(yùn)行該代碼,運(yùn)行結(jié)果會在代碼塊的下面顯示,其中out[]內(nèi)的數(shù)字表示代碼塊的第幾次運(yùn)行輸出要增加新的代碼編輯框,可以點(diǎn)擊“+”在下方增加代碼編輯框,點(diǎn)擊“Insert”,可以在上方或下方增加代碼編輯框,即可繼續(xù)編寫代碼

1.2

Python的初步使用保存JupyterNotebook文件要保存編寫的代碼,常用的有兩種格式:一種是JupyterNotebook的專屬文件格式,另一種是Python格式要保存成JupyterNotebook格式,在文件界面中點(diǎn)擊file菜單,選擇SaveandCheckpoint,文件會自動(dòng)保存在默認(rèn)路徑下,文件的擴(kuò)展名為ipynb。如果要保存在自己的文件夾中,可以在桌面上先建立一個(gè)文件夾,比如,Python_code,進(jìn)入JupyterNotebook后,點(diǎn)擊“Desktop”就能顯示你的文件夾Python_code,點(diǎn)擊該文件夾,并點(diǎn)擊右上角的New按鈕,選擇Python3,即可以創(chuàng)建一個(gè)Python文件,這個(gè)文件就會自動(dòng)保存至文件夾Python_code中,你可以建立多個(gè)不同名稱的文件保存在該文件夾中要保存成Python文件,點(diǎn)擊file菜單,選擇Downloadas下的Python(.py),文件會自動(dòng)保存在默認(rèn)路徑

1.2

Python的初步使用

Anaconda——保存JupyterNotebook文件模塊Python中的模塊(module)或稱為庫(package)是指包含Python類、函數(shù)等信息的集合,可以看作一個(gè)工具包大部分統(tǒng)計(jì)分析和繪圖都可以使用已有的Python模塊中的函數(shù)來實(shí)現(xiàn)一個(gè)Python模塊中可能包含多個(gè)函數(shù),能做多種分析和繪圖,對于同一問題的分析或繪圖,也可以使用不同模塊中的函數(shù)來實(shí)現(xiàn),用戶可以根據(jù)個(gè)人需要和偏好選擇所用的模塊。模塊的下載與安裝可以在Python中進(jìn)行,也可以在Anaconda中進(jìn)行,這取決于你使用是操作平臺或環(huán)境在最初安裝Python軟件時(shí),自帶了一序列內(nèi)置模塊,如time,random,sys,os,json,pickle,shelve,xml,re,logging等除內(nèi)置模塊外,Python還提供了豐富的開源的第三方模塊,統(tǒng)計(jì)常用的模塊有數(shù)值計(jì)算模塊numpy,數(shù)據(jù)處理模塊pandas,作圖模塊matplotlib,統(tǒng)計(jì)計(jì)算模塊statistics,統(tǒng)計(jì)建模模塊statsmodels內(nèi)置模塊與第三方模塊都需要導(dǎo)入這些模塊才能使用其中的函數(shù)模塊的加載與安裝

1.2

Python的初步使用使用Python安裝pip工具是Python自帶的第三方安裝工具,在python安裝過程中已經(jīng)安裝完成,無需獨(dú)立安裝。如果安裝Python時(shí)成功將其加入PATH,就可以在操作系統(tǒng)終端直接使用pipinstall<模塊名稱>命令安裝第三方模塊。Windows系統(tǒng)的操作是,同時(shí)按下電腦上的win+R鍵,在左下角彈出的運(yùn)行窗口輸入“cmd”即可打開終端。MacOS直接打開Terminal即可使用Anaconda安裝使用Anaconda中的conda進(jìn)行包的管理和環(huán)境管理。安裝模塊需要在AandondaPrompt中輸入命令。點(diǎn)擊Windows的“開始”按鈕,在Anaconda點(diǎn)擊AandondaPrompt,在打開的界面中輸入安裝命令即可完成安裝。比如,要安裝模塊pandas,輸入condainstall<模塊名稱>即可完成安裝模塊的加載與安裝

1.2

Python的初步使用模塊縮寫對于名稱較長的模塊,為方便使用,通常在導(dǎo)入后將其簡化命名。比如,importpandasaspd表示導(dǎo)入模塊pandas并簡化命名為pd,importmatpoltlibasplt表示導(dǎo)入模塊matploylib并簡化命名為plt,等等當(dāng)你看到pd.read_csv時(shí),意味著引用的是pandas模塊中的read_csv函數(shù),看到np.average時(shí),意味著引用的是numpy模塊中的average函數(shù),等等模塊的縮寫

1.2

Python的初步使用查看幫助每個(gè)Python模塊和函數(shù)都有相應(yīng)的幫助說明。使用中遇到疑問時(shí),可以隨時(shí)查看幫助文件查詢Python內(nèi)置的模塊或函數(shù)時(shí),直接使用help(函數(shù)名)或help(’模塊名’)即可。比如,要想了解sum函數(shù)功能及使用方法,可以使用help(sum)或?sum來查詢。要了解random模塊的功能及使用方法,可使用help('random')查詢,或先使用import導(dǎo)入該模塊,使用help(random)查詢要查詢從第三方平臺安裝的模塊和其中的函數(shù)時(shí),需要先用improt導(dǎo)入模塊,確保壞境內(nèi)有這個(gè)對象查看幫助文件

1.2

Python的初步使用對象賦值Python有一個(gè)重要的概念,即一切皆對象。在Python中,數(shù)字、字符串、元組、列表、字典、函數(shù)、方法、類、模塊,包括你寫的代碼都是對象(object)對象是給某個(gè)變量、數(shù)據(jù)集或一組代碼起一個(gè)名字。比如,d=example1_1就是將數(shù)據(jù)框example1_1賦值給了對象d,要使用該數(shù)據(jù)框,直接使用d就可以了Python語言的標(biāo)準(zhǔn)賦值符號是“=”。使用者可以給對象賦一個(gè)值、一個(gè)列表、一個(gè)矩陣或一個(gè)數(shù)據(jù)框、一個(gè)代碼塊等。比如,將5個(gè)數(shù)據(jù)組成的列表[80,87,98,73,100]賦值給對象x,將數(shù)據(jù)文件example1_1賦值給對象d等編寫代碼腳本

1.2

Python的初步使用變量命名在Python中,變量名是所指定的一種特定標(biāo)識符(字符串)。Python的變量命名規(guī)則如下標(biāo)識符可以由字母、數(shù)字、下畫線(_)組成,其中數(shù)字不能打頭。字母并不局限于26個(gè)英文字母,可以包含中文字符等Python語言區(qū)分大小寫,因此abc和Abc是兩個(gè)不同的標(biāo)識符標(biāo)識符不能包含空格另外,Python有33個(gè)關(guān)鍵字,如表1-1所示。這些關(guān)鍵字在語法中有特定的含義和功能,不能作為變量名編寫代碼腳本

1.2

Python的初步使用讀取外部數(shù)據(jù)ython可以讀取不同形式的外部數(shù)據(jù),這里主要介紹如何讀取csv格式和Excel格式的數(shù)據(jù)。本書使用的數(shù)據(jù)形式均為csv格式,其他很多類型的數(shù)據(jù)也可以轉(zhuǎn)換為csv格式,比如,Excel數(shù)據(jù)、SPSS數(shù)據(jù)等均可以轉(zhuǎn)換成csv格式需要注意的是,csv文件的編碼格式有兩種,即GBK格式和UTF-8格式。使用Excel將數(shù)據(jù)存為csv格式時(shí),默認(rèn)編碼格式為GBK,要將其存為UTF-8格式,需要使用CSVUTF-8進(jìn)行保存使用pandas庫中的read_csv函數(shù)可以將csv格式數(shù)據(jù)讀入到Python環(huán)境中。默認(rèn)讀取編碼格式為UTF-8的csv文件,讀取編碼格式為GBK的csv文件時(shí),需要指定編碼格式,及設(shè)置參數(shù)encoding='gbk',否則會出現(xiàn)報(bào)錯(cuò)信息文件讀取和保存

1.2

Python的初步使用數(shù)據(jù)保存在分析數(shù)據(jù)時(shí),如果讀入的是已有的數(shù)據(jù),并且未對數(shù)據(jù)做任何改動(dòng),就沒必要保存,下次使用時(shí),重新加載該數(shù)據(jù)即可。但是,如果在Python中錄入的是新數(shù)據(jù),或者對加載的數(shù)據(jù)做了修改,保存數(shù)據(jù)就十分必要如果在Python環(huán)境中錄入新數(shù)據(jù),或者讀入的是已有的數(shù)據(jù),想要將數(shù)據(jù)以特定的格式保存在指定的路徑中,則先要確定保存成何種格式。如果想將數(shù)據(jù)框保存成csv格式,則數(shù)據(jù)文件的后綴必須是csv,并指定編碼格式,可以使用數(shù)據(jù)框的to_csv方法。如果要將數(shù)據(jù)保存成Excel格式,則數(shù)據(jù)文件的后綴必須是xlsx,可以使用數(shù)據(jù)框的to_excel方法文件讀取和保存

1.2

Python的初步使用THEENDTHANKS2023/12/19StatisticswithPython

統(tǒng)計(jì)學(xué)

基于Python

2023/12/19

課程內(nèi)容描述統(tǒng)計(jì)、推斷統(tǒng)計(jì)、其他方法使用軟件

Python

語言學(xué)分與課時(shí)3學(xué)分,1~17周,每周3課時(shí)課程簡介賈俊平吳翌琳著賈俊平2023/12/192.1Python的基本數(shù)據(jù)結(jié)構(gòu)2.2數(shù)組、序列和數(shù)據(jù)框2.3數(shù)據(jù)抽樣和篩選2.4生成頻數(shù)分布表2.5Python繪圖基礎(chǔ)第2章數(shù)據(jù)處理和繪圖基礎(chǔ)

Python的數(shù)據(jù)結(jié)構(gòu)——數(shù)字和字符串Python中有6種基本的數(shù)據(jù)結(jié)構(gòu)或稱數(shù)據(jù)類型,分別是數(shù)字(number)、字符串(string)、元組(tuple)、列表(list)、字典(dictionary)、集合(set)6種數(shù)據(jù)類型通過不同的組成方式和定義可以產(chǎn)生更多的類型使用內(nèi)置函數(shù)type()可以查看數(shù)據(jù)的類型

2.1

Python的基本數(shù)據(jù)結(jié)構(gòu)數(shù)字用于儲存數(shù)值Python支持4種類型的數(shù)字,即int(整數(shù)類型)、float(浮點(diǎn)類型,即取小數(shù)的數(shù)字)、bool(布爾類型,是只取True和False兩個(gè)值的邏輯型數(shù)字,也可以用0和1表示)、complex(復(fù)數(shù)類型)。字符串由數(shù)值、字母、下劃線組成的字符??梢允褂脝我枺?')、雙引號('''')或三引號('''''')指定字符串使用“+”連接兩個(gè)字符串使用內(nèi)置函數(shù)type()可以查看數(shù)據(jù)的類型

Python的數(shù)據(jù)結(jié)構(gòu)——元組和列表元組是一維序列,其定長是固定的、不可變的,內(nèi)容不能修改,通常用“()”標(biāo)識,元素之間用“,”分隔列表列表也是一維序列,與元組不同的是其長度是可變的,它所包含的內(nèi)容也可以進(jìn)行修改列表中的元素可以是相同類型,也可以是不同類型,元素之間用逗號分隔,使用中括號“[]”或list類型函數(shù)可以創(chuàng)建列表,使用內(nèi)置函數(shù)type()可以查看數(shù)據(jù)的類型

2.1

Python的基本數(shù)據(jù)結(jié)構(gòu)#創(chuàng)建列表l1=[2,3,4,5]#生成元素同為數(shù)字的列表l1[2,3,4,5]l2=["甲","乙","丙","丁"]#元素同為字符串的列表l2['甲','乙','丙','丁']l3=["甲",23,True,[1,2,3]]#不同類型元素的列表l3['甲',23,True,[1,2,3]]l4=list(range(10))#用range函數(shù)生成等差數(shù)列,起始為0,步長為1l4[0,1,2,3,4,5,6,7,8,9]l5=list(range(100,200,20))#在100~200之間生成數(shù)列,步長為20l5[100,120,140,160,180]注:range函數(shù)是Python的內(nèi)置函數(shù),用于生成整數(shù)等差序列,共有3個(gè)參數(shù),分別是起始值,終點(diǎn)值和步長。默認(rèn)起始值為0,可以為負(fù)值,但不能是小數(shù),默認(rèn)步長為1,生成規(guī)則是左閉右開

Python的數(shù)據(jù)結(jié)構(gòu)——列表的操作列表的操作使用索引可以訪問列表中的元素,索引的符號也是方括號注意:Python的索引從左到右是從0開始的,從右到左是從-1開始的根據(jù)需要可以對于列表進(jìn)行其他一些操作,比如,使用append方法將元素添加到列表的尾部;使用insert方法將元素插入到指定的列表位置;使用pop方法將列表中特定位置的元素移除并返回;使用sort方法對列表中的元素排序;使用“+”連接兩個(gè)列表,等等

2.1

Python的基本數(shù)據(jù)結(jié)構(gòu)#向列表追加或插入元素l1=[2,3,4,5]l1.append(6)#將數(shù)字6追加到列表l1的尾部[2,3,4,5,6]l2=["甲","乙","丙","丁"]l2.insert(2,'戊')#在列表l2的第3個(gè)位置插入“戊”(插入位置的范圍從0到列表的長度)['甲','乙','戊','丙','丁']#移除列表中特定位置的元素并返回l2=["甲","乙","丙","丁"]l2.pop(2)#移除列表l2中第3個(gè)位置的元素并返回['甲','乙','丁']#連接兩個(gè)列表l1=[2,3,4,5]l2=["甲","乙","丙","丁"]l12=l1+l2#將列表l1和列表l2連接成一個(gè)新列表ab[2,3,4,5,'甲','乙','丙','丁']#列表元素的排序l6=[2,3,4,5,2,8]#創(chuàng)建列表l6l6.sort()#列表元素的排序[2,2,3,4,5,8]l7=['甲','乙','戊','丙','丁']#創(chuàng)建列表l7l7.sort()#列表元素的排序,或?qū)懗蓅orted(l7)['丁','丙','乙','戊','甲']

Python的數(shù)據(jù)結(jié)構(gòu)——字典和集合——字典及其操作字典字典是Python最重要的內(nèi)置結(jié)構(gòu)之一,它是大小可變的鍵值對集,其中鍵(key)和值(value)都是Python對象。字典中的元素用大括號{}括起來,用“:”分割鍵和值,不同的鍵值組合之間用“,”分隔。用大括號“{}”或dict函數(shù)可以創(chuàng)建字典,其形式如下:dictionary={key1:value1,key2:value2,……}或?qū)懗桑篸ictionary=dict(key1=value1,key2=value2,……)

2.1

Python的基本數(shù)據(jù)結(jié)構(gòu)#用大括號{}創(chuàng)建字典dc1={'劉文濤':68,'王宇翔':85,'田思雨':74,'徐麗娜':88,'丁文彬':63}#創(chuàng)建5名學(xué)生考試分?jǐn)?shù)的字典{'劉文濤':68,'王宇翔':85,'田思雨':74,'徐麗娜':88,'丁文彬':63}#用dict函數(shù)創(chuàng)建字典dc2=dict(劉文濤=68,王宇翔=85,田思雨=74,徐麗娜=88,丁文彬=63)#創(chuàng)建5名學(xué)生考試分?jǐn)?shù)的字典{'劉文濤':68,'王宇翔':85,'田思雨':74,'徐麗娜':88,'丁文彬':63}#以列表的形式返回字典dc1中的鍵dc1.keys()dict_keys(['劉文濤','王宇翔','田思雨','徐麗娜','丁文彬'])#以列表的形式返回字典dc1中的值dc1.values()dict_values([68,85,74,88,63])#以列表的形式返回字典dc1中的鍵值對dc1.items()dict_items([('劉文濤',68),('王宇翔',85),('田思雨',74),('徐麗娜',88),('丁文彬',63)])#返回(查詢)字典dc1中鍵k上的值dc1['徐麗娜']88#刪除字典dc1中的某個(gè)鍵值對deldc1['田思雨']{'劉文濤':68,'王宇翔':85,'徐麗娜':88,'丁文彬':63}

Python的數(shù)據(jù)結(jié)構(gòu)——字典和集合——集合及其操作集合集合是由唯一元素組成的無序集,可看成是只有鍵沒有值的字典集合中的元素是無序的,不記錄元素的位置,因此不支持索引、切片等類似序列的操作,只能遍歷或使用in、notin等訪問或判斷集合元素使用set()函數(shù)或大括號“{}”的方式等可以創(chuàng)建集合,一個(gè)空集合必須使用set()創(chuàng)建

2.1

Python的基本數(shù)據(jù)結(jié)構(gòu)#使用set函數(shù)創(chuàng)建集合set1=set([2,2,2,1,8,3,3,5,5])set1{1,2,3,5,8}#使用大括號{}創(chuàng)建集合set2={2,2,2,1,4,3,3,5,6,6}set2{1,2,3,4,5,6}#兩個(gè)集合的并集(兩個(gè)集合中不同元素的集合)set1|set2#或?qū)懗蓅et1.union(set2){1,2,3,4,5,6,8}#兩個(gè)集合的交集(兩個(gè)集合中同時(shí)包含的元素)set1&set2#或?qū)懗蒭rsection(set2){1,2,3,5}

numpy中的數(shù)組——?jiǎng)?chuàng)建數(shù)組數(shù)組n維數(shù)組(ndarray)是numpy模塊中定義的對象,它可以是一維、二維和多維,數(shù)組中元素類型是數(shù)值型。n維數(shù)組由實(shí)際數(shù)據(jù)和描述這些數(shù)據(jù)的元數(shù)據(jù)(數(shù)據(jù)維度,數(shù)據(jù)類型等)組成,一般要求所有元素類型相同,數(shù)組下標(biāo)從0開始一維數(shù)組就是通常所說的向量(vector),二維數(shù)組就是通常所說的矩陣(matrix)??梢酝ㄟ^構(gòu)造函數(shù)array創(chuàng)建n維數(shù)組,也可以使用numpy中的其他函數(shù)如arange函數(shù)、ones函數(shù)以及zeros函數(shù)等創(chuàng)建n維數(shù)組

2.2

數(shù)組、序列和數(shù)據(jù)框#創(chuàng)建一維數(shù)組(向量)importnumpyasnpa1=np.array([5,4,1,2,3])#使用array函數(shù)創(chuàng)建數(shù)組a2=np.arange(10)#用range函數(shù)生成等差數(shù)列,起始為0,步長為1a3=np.arange(2,6,0.5)#用arange函數(shù)在2~6之間生成步長為0.5的等差序列print('a1:',a1)#輸出結(jié)果print('a2:',a2)print('a3:',a3)a1:[54123]a2:[0123456789]a3:[2.2.53.3.54.4.55.5.5]#創(chuàng)建二維數(shù)組(矩陣)importnumpyasnpa4=np.array([[1,2],[3,4],[5,6]])#創(chuàng)建2×3的矩陣a4array([[1,2],[3,4],[5,6]])#改變數(shù)組的形狀importnumpyasnpa5=np.arange(12)#創(chuàng)建一維數(shù)組a6=a5.reshape(3,4)#改變數(shù)組為3×4的二維數(shù)組(矩陣)a6array([[0,1,2,3],[4,5,6,7],[8,9,10,11]])

pandas中的序列和數(shù)據(jù)框——序列及其操作序列序列類似于一維數(shù)組,不同的是它由索引(index)和一維數(shù)值(values)組成序列可以儲存整數(shù)、浮點(diǎn)數(shù)、字符、Python對象等多種類型的數(shù)據(jù),但一個(gè)序列最好只存儲一種類型的數(shù)據(jù),若存在多種數(shù)據(jù)類型,該序列的類型會自動(dòng)轉(zhuǎn)換成對象使用Series函數(shù)可創(chuàng)建序列,使用前需要導(dǎo)入pandas模塊importpandasaspds1=pd.Series([2,3,4,5])#省略索引時(shí)自動(dòng)生成索引02132435dtype:int64s2=pd.Series([5,8,7,6],index=['a','b','c','d'])#自行指定索引a5b8c7d6dtype:int64#由標(biāo)量生成序列時(shí),不能省略索引s3=pd.Series([60,80,50],index=['甲',25,True])#索引可以是不同類型元素甲602580True50dtype:int64#由Python字典生成序列s4=pd.Series({'a':1,'b':'boy','c':3})#索引與數(shù)據(jù)以字典形式傳入a1bboyc3dtype:object#由其他函數(shù)生成序列s5=pd.Series(range(5))#使用range函數(shù),類似列表print(s5)#print函數(shù)用于標(biāo)準(zhǔn)輸出(也可以直接運(yùn)行對象s5)0011223344dtype:int64

2.2

數(shù)組、序列和數(shù)據(jù)框

pandas中的序列和數(shù)據(jù)框——序列及其操作#獲取系列索引、數(shù)據(jù)、類型importpandasaspds6=pd.Series([5,8,7,6],index=['a','b','c','d'])print('類型:',s6.index)#獲取系列索引print('數(shù)據(jù):',s6.values)#獲取系列數(shù)據(jù)print('類型:',s6.dtype)#獲取系列類型類型:Index(['a','b','c','d'],dtype='object')數(shù)據(jù):[5876]類型:int64#設(shè)置系列與索引的名稱(name)屬性='我是一個(gè)pandas的Series'#設(shè)置系列名稱='我是索引'#設(shè)置系列索引名稱s6我是索引a5b8c7d6Name:我是一個(gè)pandas的Series,dtype:int64#轉(zhuǎn)換系列類型s6=s6.astype(float)#將整數(shù)型改為浮點(diǎn)數(shù)類型s6我是索引a5.0b8.0c7.0d6.0Name:我是一個(gè)pandas的Series,dtype:float64#修改序列中的數(shù)據(jù)s6[[1,3]]=[2,8]#將序列s6中的第2個(gè)值和第4個(gè)值修改為2和8s6我是索引a5.0b2.0c7.0d8.0Name:我是一個(gè)pandas的Series,dtype:float64#序列的對齊運(yùn)算s7=pd.Series([1,2,3],index=['a','c','e'],dtype=float)s6+s7a6.0bNaNc9.0dNaNeNaNdtype:float64注:序列的運(yùn)算完全根據(jù)索引來對齊,如果兩者都有自定義索引,優(yōu)先使用自定義索引,如果只有一個(gè)有自定義索引,另一個(gè)是自動(dòng)索引,還是會使用自定義索引,這種情況運(yùn)算結(jié)果會出現(xiàn)大量空值(NaN);如果兩方都是自動(dòng)索引,則根據(jù)自動(dòng)索引進(jìn)行對齊。#序列的一些簡單計(jì)算importpandasaspds8=pd.Series([1,2,3,4,5],index=['a','b','c','d','e'],dtype=float)c=s8.cumsum()#序列s8的累加s=s8.sum()#序列s8求和m=s8.mean()#求序列s8的平均數(shù)print("累加:",'\n',c,'\n',"總和=",s,'\n',"平均數(shù)=",m)累加:a1.0b3.0c6.0d10.0e15.0dtype:float64總和=15.0平均數(shù)=3.0

2.2

數(shù)組、序列和數(shù)據(jù)框

pandas中的序列和數(shù)據(jù)框——?jiǎng)?chuàng)建數(shù)據(jù)框數(shù)據(jù)框數(shù)據(jù)框是pandas中的另一個(gè)重要數(shù)據(jù)結(jié)構(gòu),它是一種表格結(jié)構(gòu)的數(shù)據(jù),類似于Excel中的數(shù)據(jù)表,也是較為常見的數(shù)據(jù)形式數(shù)據(jù)框?qū)嶋H上是帶標(biāo)簽的二維數(shù)組,一個(gè)數(shù)據(jù)框由行索引(index)、列索引(columns)和二維數(shù)據(jù)(values)組成。數(shù)據(jù)框的每一列和每一行都是一個(gè)序列。為了便于分析,一般要求數(shù)據(jù)框一列只存儲一種類型的數(shù)據(jù)使用pandas的構(gòu)造函數(shù)DataFrame可創(chuàng)建數(shù)據(jù)框,其中的參數(shù)data為數(shù)組或字典姓名統(tǒng)計(jì)學(xué)數(shù)學(xué)經(jīng)濟(jì)學(xué)劉文濤688584王宇翔859163田思雨747461徐麗娜8810049丁文彬638289

2.2

數(shù)組、序列和數(shù)據(jù)框

pandas中的序列和數(shù)據(jù)框——數(shù)據(jù)框的操作數(shù)據(jù)框的操作顯示數(shù)據(jù)框,輸入數(shù)據(jù)框的名稱即可使用table1_1.head()默認(rèn)顯示數(shù)據(jù)框table1_1的前5行;使用table1_1.tail()默認(rèn)顯示數(shù)據(jù)框table1_1的后5行使用type函數(shù)可以查看數(shù)據(jù)的類型使用table1_1.shape可以查看數(shù)據(jù)框table1_1的行數(shù)和列數(shù)屬性當(dāng)數(shù)據(jù)量比較大時(shí),可以使用info()方法查看數(shù)據(jù)的結(jié)構(gòu)使用describe()方法可以對數(shù)據(jù)框的數(shù)值型變量進(jìn)行簡單的描述統(tǒng)計(jì)使用pandas的構(gòu)造函數(shù)DataFrame可創(chuàng)建數(shù)據(jù)框,其中的參數(shù)data為數(shù)組或字典方法描述示例columns查看所有列名(列索引)df.columnsdtypes查看所有元素的類型df.dtypeshead查看前n行數(shù)據(jù)(默認(rèn)前5行)df.head(3)index查看所有行名(行索引)df.indexinfo查看數(shù)據(jù)結(jié)構(gòu)(索引、數(shù)據(jù)類型等)shape查看行數(shù)和列數(shù)(行,列)df.shapeT數(shù)據(jù)框的行列轉(zhuǎn)置df.Ttail查看后n行數(shù)據(jù)(默認(rèn)后5行)df.tail(3)values查看所有元素的值df.values

2.2

數(shù)組、序列和數(shù)據(jù)框

pandas中的序列和數(shù)據(jù)框——數(shù)據(jù)框的排序數(shù)據(jù)框的排序使用sort_values()方法可以對數(shù)據(jù)框的某一列排序,函數(shù)默認(rèn)參數(shù)ascending=True,即升序排列,需要降序時(shí),可設(shè)置參數(shù)ascending=False可以按照索引排序,使用sort_index()方法,參數(shù)axis默認(rèn)為0,按照行索引對行排序,設(shè)置axis=1即按照列索引對列排序,默認(rèn)升序按姓名筆畫升序排序數(shù)據(jù)框按統(tǒng)計(jì)學(xué)考試分?jǐn)?shù)降序排序數(shù)據(jù)框

2.2

數(shù)組、序列和數(shù)據(jù)框姓名統(tǒng)計(jì)學(xué)數(shù)學(xué)經(jīng)濟(jì)學(xué)4丁文彬6382891王宇翔8591632田思雨7474610劉文濤6885843徐麗娜8810049

姓名統(tǒng)計(jì)學(xué)數(shù)學(xué)經(jīng)濟(jì)學(xué)3徐麗娜88100491王宇翔8591632田思雨7474610劉文濤6885844丁文彬638289

pandas中的序列和數(shù)據(jù)框——數(shù)據(jù)框的合并數(shù)據(jù)框的合并可使用concat函數(shù)。函數(shù)默認(rèn)參數(shù)axis為0(默認(rèn)的參數(shù)設(shè)置可以省略不寫),表示將不同的數(shù)據(jù)框按行合并,設(shè)置axis=1將不同的數(shù)據(jù)框按列合并按行合并時(shí),數(shù)據(jù)框中的列索引必須相同,按列合并時(shí),數(shù)據(jù)框中的行索引必須相同,否則合并是沒有意義的合并后的數(shù)據(jù)框

2.2

數(shù)組、序列和數(shù)據(jù)框

姓名統(tǒng)計(jì)學(xué)數(shù)學(xué)經(jīng)濟(jì)學(xué)0劉文濤6885841王宇翔8591632田思雨7474613徐麗娜88100494丁文彬6382895李志國7884516王智強(qiáng)9078597宋麗媛80100538袁芳芳5851799張建國637091

pandas中的序列和數(shù)據(jù)框——數(shù)據(jù)框的應(yīng)用函數(shù)函數(shù)描述示例describe輸出數(shù)據(jù)框的主要描述統(tǒng)計(jì)量df.describe()count返回每一列中非空值的個(gè)數(shù)df.count()sum返回每一列的和(無法計(jì)算時(shí)返回空值)df.sum()max返回每一列的最大值df.max()min返回每一列的最小值df.min()argmax返回最大值所在的自動(dòng)索引位置df.argmax()argmin返回最小值所在的自動(dòng)索引位置df.argmin()idxmax返回最大值所在的自定義索引位置df.idxmax()idxmin返回最小值所在的自定義索引位置df.idxmin()mean返回每一列的平均值df.mean()median返回每一列的中位數(shù)df.median()var返回每一列的方差df.var()std返回每一列的標(biāo)準(zhǔn)差df.std()

2.2

數(shù)組、序列和數(shù)據(jù)框抽取簡單隨機(jī)樣本——例題分析

2.3

數(shù)據(jù)抽樣和篩選抽取簡單隨機(jī)樣本從一個(gè)已知的總體數(shù)據(jù)集中抽取一個(gè)隨機(jī)樣本可以采取不同的抽樣方法,本節(jié)只介紹抽取簡單隨機(jī)樣本的方法使用sample函數(shù)抽取簡單隨機(jī)樣本【例2-1】50個(gè)學(xué)生的姓名、性別、專業(yè)、滿意度和考試分?jǐn)?shù)#無放回抽取10個(gè)學(xué)生:['黃向春','徐麗娜','張青松','王思思','袁芳芳','楊小波','馬家強(qiáng)','張志杰','李佳佳','王浩波’]#有放回抽取10個(gè)學(xué)生:['劉文濤','王思思','盧春陽','蔣亞迪','黃向春','李國勝','田思雨','吳凱迪','高鳳云','邵海陽’]#無放回抽取10個(gè)分?jǐn)?shù):[73,78,80,75,71,89,74,70,82,81]#有放回抽取10個(gè)分?jǐn)?shù):[90,74,76,74,77,86,74,86,63,89]數(shù)據(jù)篩選

2.3

數(shù)據(jù)抽樣和篩選數(shù)據(jù)篩選數(shù)據(jù)篩選(datafilter)是根據(jù)需要找出符合特定條件的某類數(shù)據(jù)。比如,找出每股盈利在2元以上的上市公司;找出考試成績在90分及以上的學(xué)生,等等用Python進(jìn)行數(shù)據(jù)篩選的方法很多,比如,直接在數(shù)據(jù)框的[]中寫篩選的條件或者組合條件進(jìn)行篩選;使用loc或iloc按標(biāo)簽值(列名和行索引取值)或按數(shù)字索引訪問數(shù)據(jù)框,從行和列兩個(gè)維度篩選;使用df.isin函數(shù)篩選某些具體數(shù)值范圍內(nèi)的數(shù)據(jù);使用df.Query函數(shù)查詢數(shù)據(jù)框的列;使用filter函數(shù)篩選特定的行或列,等等使用sample函數(shù)抽取簡單隨機(jī)樣本數(shù)據(jù)篩選——例題分析

2.3

數(shù)據(jù)抽樣和篩選篩選出考試分?jǐn)?shù)小于60的所有學(xué)生篩選出考試分?jǐn)?shù)為70、80和90的3個(gè)學(xué)生篩選出不滿意的所有學(xué)生(前3行)篩選出管理學(xué)專業(yè)滿意的學(xué)生

姓名性別專業(yè)滿意度考試分?jǐn)?shù)11馬鳳良男金融學(xué)滿意5514孫學(xué)偉男會計(jì)學(xué)不滿意5133張?zhí)煅竽袝?jì)學(xué)一般56

姓名性別專業(yè)滿意度考試分?jǐn)?shù)49王思思女會計(jì)學(xué)滿意8021李國勝男金融學(xué)一般9047尹嘉韓男會計(jì)學(xué)一般70

姓名性別專業(yè)滿意度考試分?jǐn)?shù)0張青松男會計(jì)學(xué)不滿意824張志杰男會計(jì)學(xué)不滿意7710李佳佳女金融學(xué)不滿意80

姓名性別專業(yè)滿意度考試分?jǐn)?shù)18吳凱迪女管理學(xué)滿意7136李宗洋男管理學(xué)滿意7937劉皓天男管理學(xué)滿意8541孟子鐸男管理學(xué)滿意8246唐國健男管理學(xué)滿意75數(shù)據(jù)篩選——例題分析

2.3

數(shù)據(jù)抽樣和篩選篩選出會計(jì)學(xué)專業(yè)考試分?jǐn)?shù)大于等于80的女生,并按分?jǐn)?shù)多少降序排列

姓名性別專業(yè)滿意度考試分?jǐn)?shù)29李愛華女會計(jì)學(xué)不滿意987宋麗媛女會計(jì)學(xué)一般9234李冬茗女會計(jì)學(xué)滿意8835王曉倩女會計(jì)學(xué)不滿意8649王思思女會計(jì)學(xué)滿意80篩選出考試分?jǐn)?shù)大于等于80、金融學(xué)專業(yè)、滿意的女生,并按分?jǐn)?shù)多少降序排列

姓名性別專業(yè)滿意度考試分?jǐn)?shù)5趙穎穎女金融學(xué)滿意9726丁麗佳女金融學(xué)滿意8928于文靜女金融學(xué)滿意8443邱怡爽女金融學(xué)滿意83生成隨機(jī)數(shù)——例題分析

2.3

數(shù)據(jù)抽樣和篩選生成隨機(jī)數(shù)用numpy中的random子模塊可以同時(shí)生成多個(gè)隨機(jī)數(shù),還能組成不同形狀的隨機(jī)數(shù)數(shù)組由于是隨機(jī)生成,每次運(yùn)行會得到不同的隨機(jī)數(shù)要想每次運(yùn)行都產(chǎn)生相同的一組隨機(jī)數(shù),可在生成隨機(jī)數(shù)之前使用函數(shù)seed()設(shè)定隨機(jī)數(shù)種子,在括號內(nèi)可輸入任意數(shù)字即可,如numpy.random.seed(12)。使用相同的隨機(jī)數(shù)種子,每次運(yùn)行都會產(chǎn)生一組相同的隨機(jī)數(shù)#生成不同分布的隨機(jī)數(shù)(每種分布產(chǎn)生5個(gè))importnumpy.randomasnpr

npr.seed(15)#設(shè)定隨機(jī)數(shù)種子r1=npr.standard_normal(size=5)#標(biāo)準(zhǔn)正態(tài)分布r2=npr.normal(loc=50,scale=5,size=5)#均值(loc)為50、標(biāo)準(zhǔn)差(scale)為5的正態(tài)分布r3=npr.uniform(low=0,high=10,size=5)#0~10之間的均勻分布

print('#標(biāo)準(zhǔn)正態(tài)分布:','\n',r1,'\n''#值為50、標(biāo)準(zhǔn)差為5的正態(tài)分布:','\n',r2,'\n''#0~10之間的均勻分布:','\n',r3)#打印結(jié)果#標(biāo)準(zhǔn)正態(tài)分布:[-0.312328480.33928471-0.15590853-0.501789670.23556889]#值為50、標(biāo)準(zhǔn)差為5的正態(tài)分布:[41.1819737244.5206897844.5611712948.4741497447.63125814]#0~10之間的均勻分布:[9.176298982.641468537.177736878.657150348.07079482]頻數(shù)分布表

2.4

生成頻分布數(shù)表頻數(shù)分布表頻數(shù)分布表(frequencydistributiontable)簡稱頻數(shù)表,是對類別數(shù)據(jù)計(jì)數(shù)或數(shù)值數(shù)據(jù)類別化(分組)后計(jì)數(shù)生成的表格,用于展示數(shù)據(jù)的頻數(shù)分布(frequencydistribution),其中,落在某一特定類別的數(shù)據(jù)個(gè)數(shù)稱為頻數(shù)(frequency)類別數(shù)據(jù)頻數(shù)表由于類別數(shù)據(jù)本身就是一種分類,只要將所有類別都列出來,然后計(jì)算出每一類別的頻數(shù),就可生成頻數(shù)分布表。根據(jù)觀測變量的多少,可以生成一維表、二維表和多維表數(shù)值數(shù)據(jù)的頻數(shù)分布表需要先將數(shù)據(jù)劃分成不同的數(shù)值區(qū)間,這樣的區(qū)間就是類別數(shù)據(jù),然后再生成頻數(shù)分布表,這一過程稱為類別化(categorization)。類別化的方法是將原始數(shù)據(jù)分成不同的組別類別數(shù)據(jù)的頻數(shù)分布表——一維表

2.4

生成頻分布數(shù)表一維表當(dāng)只涉及一個(gè)類別變量時(shí),這個(gè)變量的各類別可以放在頻數(shù)分布表中“行”的位置,也可以放在“列”的位置,將該變量的各類別及其相應(yīng)的頻數(shù)列出來就是一維表,也稱一維列聯(lián)表(one-dimensionalcontingencytable)【例2-2】

沿用例2-1。

專業(yè)會計(jì)學(xué)19金融學(xué)16管理學(xué)15一維表百分比表

專業(yè)會計(jì)學(xué)38.0金融學(xué)32.0管理學(xué)30.0類別數(shù)據(jù)的頻數(shù)分布表——二維表

2.4

生成頻分布數(shù)表二維表當(dāng)涉及兩個(gè)類別變量時(shí),可以將一個(gè)變量的各類別放在“行”的位置,另一個(gè)變量的各類別放在“列”的位置(行和列可以互換),由兩個(gè)類別變量交叉分類形成的頻數(shù)分布表稱為二維列聯(lián)表(two-dimensionalcontingencytable)或交叉表(crosstable),簡稱二維表使用pandas中的crosstab函數(shù)和pivot_table函數(shù)均可以生成二維表。在crosstab函數(shù)中,設(shè)置參數(shù)margins=True可為二維表添加邊際和;設(shè)置參數(shù)margins_name可以修改邊際和的名稱;設(shè)置參數(shù)normalize='index'可以計(jì)算各行數(shù)據(jù)占該行合計(jì)的比例;設(shè)置參數(shù)normalize='columns'可以計(jì)算各列數(shù)據(jù)占該列合計(jì)的比例;設(shè)置參數(shù)normalize='all'可以計(jì)算每個(gè)數(shù)據(jù)占總和的比例類別數(shù)據(jù)的頻數(shù)分布表——二維表——例題分析

2.4

生成頻分布數(shù)表生成二維表為二維表添加邊際和并修改邊際和名稱滿意度一般不滿意滿意性別

女3613男12610滿意度一般不滿意滿意性別

女13.6427.2759.09男42.8621.4335.71合計(jì)30.0024.0046.00百分比二維表滿意度一般不滿意滿意性別

女13.6427.2759.09男42.8621.4335.71合計(jì)30.0024.0046.00計(jì)算各數(shù)據(jù)占總和的比例,并轉(zhuǎn)換成百分比表計(jì)算各列所占的比例,并轉(zhuǎn)換成百分比表滿意度一般不滿意滿意合計(jì)性別

女20.050.056.5244.0男80.050.043.4856.0滿意度一般不滿意滿意合計(jì)性別

女6.012.026.044.0男24.012.020.056.0合計(jì)30.024.046.0100.0類別數(shù)據(jù)的頻數(shù)分布表——多維表

2.4

生成頻分布數(shù)表多維表有兩個(gè)以上類別變量時(shí),通常將一個(gè)或多個(gè)變量按“列”擺放,其余變量按“行”擺放,這種由多個(gè)類別變量生成的頻數(shù)分布表稱為多維列聯(lián)表(multidimensionalcontingencytable)或高維表(higher-dimensionaltables),簡稱多維表使用pandas中的數(shù)據(jù)透視表函數(shù)pivot_table可以生成多個(gè)類別變量的多維表(該函數(shù)可以生成一維表、二維表和多維表)。參數(shù)index用于指定行變量,columns用于指定列變量(行和列可以互換,可根據(jù)需要指定)。參數(shù)margins=True可為多維表表添加邊際和,margins_name可以修改邊際和的名稱。使用聚集函數(shù)aggfunc可以對類別數(shù)據(jù)計(jì)數(shù)類別數(shù)據(jù)的頻數(shù)分布表——多維表——例題分析

2.4

生成頻分布數(shù)表

性別和專業(yè)為行變量、滿意度為列變量滿意度為行變量、性別和專業(yè)為列變量

滿意度一般不滿意滿意合計(jì)性別專業(yè)

女會計(jì)學(xué)1359管理學(xué)1214金融學(xué)1179男會計(jì)學(xué)43310管理學(xué)52411金融學(xué)3137合計(jì)

15122350性別女男合計(jì)專業(yè)會計(jì)學(xué)管理學(xué)金融學(xué)會計(jì)學(xué)管理學(xué)金融學(xué)

滿意度

一般11145315不滿意32132112滿意51734323合計(jì)9491011750數(shù)值數(shù)據(jù)類別化——分組表

2.4

生成頻分布數(shù)表數(shù)值數(shù)據(jù)類別化在生成數(shù)值數(shù)據(jù)的頻數(shù)分布表時(shí),需要先將數(shù)據(jù)劃分成不同的數(shù)值區(qū)間,這樣的區(qū)間就是類別數(shù)據(jù),然后再生成頻數(shù)分布表,這一過程稱為類別化(categorization)。類別化的方法是將原始數(shù)據(jù)分成不同的組別,數(shù)據(jù)分組是將數(shù)值數(shù)據(jù)轉(zhuǎn)化成類別數(shù)據(jù)的方法之一,它是先將數(shù)據(jù)按照一定的間距劃分成若干個(gè)區(qū)間,然后再統(tǒng)計(jì)出每個(gè)區(qū)間的頻數(shù),生成頻數(shù)分布表【例2-3】某電商平臺2023年前4個(gè)月每天的銷售額數(shù)據(jù)。對銷售額做適當(dāng)分組,分析銷售額的分布特征272194161246196201217209265219188216181241254207198224253210215207225234225197171243208202206210233222222199199236203167199193248205216218209235188198225203252203181212205226226220240196172224200261207218217223228238191199252183238203172217237191229196204200187195200218207214217224230233192172216196200235216206218204186206212234243239222208205215203224238243數(shù)值數(shù)據(jù)類別化——分組表

2.4

生成頻分布數(shù)表

數(shù)值數(shù)據(jù)類別化——分組表——例題分析

2.4

生成頻分布數(shù)表組距=10的分組組距=15的分組

頻數(shù)頻數(shù)百分比(%)累積頻數(shù)累積頻數(shù)百分比(%)銷售額分組

(160,170]21.6721.67(170,180]43.3365.00(180,190]75.831310.83(190,200]2117.503428.33(200,210]2520.835949.17(210,220]1915.837865.00(220,230]1613.339478.33(230,240]1310.8310789.17(240,250]65.0011394.17(250,260]43.3311797.50(260,270]21.6711999.17(270,280]10.83120100.00

頻數(shù)頻數(shù)百分比(%)累積頻數(shù)累積頻數(shù)百分比(%)銷售額分組

[160,175)65.0065.00[175,190)75.831310.83[190,205)3025.004335.83[205,220)3428.337764.17[220,235)2117.509881.67[235,250)1512.5011394.17[250,265)54.1711898.33[265,280)21.67120100.00

Python主要繪圖模塊

2.5

Python繪圖基礎(chǔ)Python主要繪圖模塊Python具有強(qiáng)大的可視化功能,可繪制式樣繁多的圖形最典型的可視化工具主要有兩個(gè):matplotlib和seaborn此外,作為數(shù)據(jù)分析模塊的pandas也提供了針對DataFrame對象的繪圖函數(shù)gglot模塊提供了類似于R中g(shù)gplot2的繪圖方法

Python主要繪圖模塊

2.5

Python繪圖基礎(chǔ)matplotlib模塊matplotlib是Python最常用的一種2D繪圖庫,它是Python中的基礎(chǔ)繪圖模塊,包含了大量的繪圖工具,可以繪圖靈活多樣的圖形,其中的pyplot子模塊類似于Matlab的操作思想,上手簡單matplotlib可以對圖形進(jìn)行精確的設(shè)置,也可以與其他繪圖模塊結(jié)合使用matplotlib屬于比較底層的繪圖工具,要繪制漂亮或?qū)I(yè)的圖形,顯得有些繁瑣,需要編寫大量的代碼,因此,實(shí)際中通常是將其與其他繪圖模塊結(jié)合使用在官方網(wǎng)站(/tutorials/index.html)可以查看matplotlib的使用方法seaborn模塊matplotlib是Python最常用的一種2D繪圖庫,它是Python中的基礎(chǔ)繪圖模塊,包含了大量的繪圖工具,可以繪圖靈活多樣的圖形,其中的pyplot子模塊類似于Matlab的操作思想,上手簡單seaborn可視為matplotlib的擴(kuò)展模塊,也可視為對matplotlib繪圖的補(bǔ)充。它是在matplotlib的基礎(chǔ)上進(jìn)行了高級API(ApplicationProgrammingInterface,應(yīng)用程序編程接口)封裝,使用較少的代碼就可以繪制出漂亮的圖形,可用于繪制分面圖、交互圖、3D圖等。seaborn主要用于繪制較專業(yè)的統(tǒng)計(jì)分析圖形,基本上能滿足大部分統(tǒng)計(jì)繪圖的需求,尤其適合繪制按因子分組的圖形以及概率分布圖等

Python主要繪圖模塊

2.5

Python繪圖基礎(chǔ)Pandas中的繪圖函數(shù)pandas的數(shù)據(jù)結(jié)構(gòu)主要是數(shù)據(jù)框,由于數(shù)據(jù)框中有行標(biāo)簽和列標(biāo)簽,使用pandas提供的針對DataFrame對象的繪圖函數(shù),繪圖所需的代碼要比matplotlib少pandas中也提供了數(shù)據(jù)框繪圖的高級方法,可以實(shí)現(xiàn)快速繪圖與matplotlib的精細(xì)化設(shè)置結(jié)合起來,同樣可以快速完成更有吸引力的圖形ggplot和plotnine繪圖系統(tǒng)ggplot和plotnine是用于繪圖的Python擴(kuò)展模塊,這兩個(gè)模塊基本上移植了R中g(shù)gplot2的繪圖語法使用過R的ggplot2的讀者使用這兩個(gè)模塊繪圖十分容易,輸出的圖形風(fēng)格也與R的ggplot2十分類似基本繪圖函數(shù)

2.5

Python繪圖基礎(chǔ)matplotlibmatplotlib是Python的一個(gè)2D繪圖庫,它以各種硬拷貝格式和跨平臺的交互式環(huán)境生成出版質(zhì)量級別的圖形。使用matplotlib僅需要很少的代碼就可以生成繪圖,如直方圖,條形圖,散點(diǎn)圖等使用matplotlib繪圖首先要明確兩個(gè)對象,即畫布(figure)和畫像(axes)。畫布即繪圖的區(qū)域,畫像即繪制的一幅圖,如折線圖、條形圖、散點(diǎn)圖等。所有繪圖操作的第1步都是創(chuàng)建畫布和畫像,讓Python明確你開始進(jìn)行繪圖操作,一個(gè)畫布上可以放置多個(gè)畫像基本繪圖函數(shù)

2.5

Python繪圖基礎(chǔ)matplotlibmatplotlib使用不同的函數(shù)控制圖像的各個(gè)組件,如legend函數(shù)控制圖例的名稱、大小、顏色及位置等屬性,title函數(shù)控制標(biāo)題,xlabel函數(shù)控制x軸(橫坐標(biāo))標(biāo)題,相應(yīng)的ylabel函數(shù)控制y軸(縱坐標(biāo))標(biāo)題,xticks以及yticks函數(shù)分別控制x軸和y軸刻度等根據(jù)需要選擇不同的函數(shù)繪制圖像的內(nèi)容,如plot函數(shù)繪制折線圖,hist函數(shù)繪制直方圖,barh函數(shù)繪制水平條形圖,scatter函數(shù)繪制散點(diǎn)圖等圖形布局

2.5

Python

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論