Python數(shù)據(jù)分析與應(yīng)用 課件 第7、8章 python與數(shù)據(jù)分析;numpy_第1頁
Python數(shù)據(jù)分析與應(yīng)用 課件 第7、8章 python與數(shù)據(jù)分析;numpy_第2頁
Python數(shù)據(jù)分析與應(yīng)用 課件 第7、8章 python與數(shù)據(jù)分析;numpy_第3頁
Python數(shù)據(jù)分析與應(yīng)用 課件 第7、8章 python與數(shù)據(jù)分析;numpy_第4頁
Python數(shù)據(jù)分析與應(yīng)用 課件 第7、8章 python與數(shù)據(jù)分析;numpy_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第7章Python與數(shù)據(jù)分析《Python數(shù)據(jù)分析與應(yīng)用》啤酒與尿布“啤酒與尿布”。該故事產(chǎn)生于20世紀(jì)90年代的美國沃爾瑪超市,超市管理人員分析銷售數(shù)據(jù)時發(fā)現(xiàn)了一個令人難于理解的現(xiàn)象——“啤酒”與“尿布”兩件看上去毫無關(guān)系的商品會經(jīng)常出現(xiàn)在年輕的父親的同一個購物籃。這是由于在美國有嬰兒的家庭中,母親留在家中照看嬰兒,父親去超市購買尿布。父親在購買尿布的同時,往往會順便為自己購買啤酒。至此,超市人員將屬于食品飲料的“啤酒”和屬于生活用品的“尿布”擺放在一處,從而致使兩種商品的銷售量直線上升。數(shù)據(jù)分析流程(1)明確目標(biāo)(2)獲取數(shù)據(jù)(3)清洗數(shù)據(jù)(4)特征工程(5)構(gòu)建模型(6)模型評估。明確目標(biāo)這是數(shù)據(jù)分析與挖掘的第一步,即明確數(shù)據(jù)分析的對象、目標(biāo)、或任務(wù)。此環(huán)節(jié)應(yīng)該跟業(yè)務(wù)需求方多次溝通與合作,把握最終要解決的問題。規(guī)劃哪些數(shù)據(jù)可能會影響到這些問題的答案,這一步就稱為數(shù)據(jù)的獲取過程。數(shù)據(jù)獲取數(shù)據(jù)清洗為確保數(shù)據(jù)分析或挖掘結(jié)果的準(zhǔn)確性,往往需要對數(shù)據(jù)做一些基本的清洗和整理,如數(shù)據(jù)的一致性檢驗、缺失值和異常值的處理等。特征工程通過Scipy、Pandas、Sklearn等分析庫對數(shù)據(jù)進(jìn)行統(tǒng)一量綱等標(biāo)準(zhǔn)化處理,對數(shù)據(jù)進(jìn)行離散化處理,采用啞變量、獨(dú)熱編碼進(jìn)行數(shù)據(jù)重編碼,實施特征工程。模型評估通常情況下,在模型搭建好后,并不意味著分析或挖掘任務(wù)的結(jié)束,還需要對模型的擬合效果做評估,其目的就是不斷優(yōu)化模型,使最終的模型能夠更好地反映數(shù)據(jù)的真實性。構(gòu)建模型建模的目的主要是為了預(yù)測,例如使用線性回歸模型預(yù)測產(chǎn)品的銷售額;利用決策樹模型預(yù)測用戶是否具有欺詐行為;利用樸素貝葉斯模型預(yù)測郵件是否為垃圾郵件。Python數(shù)據(jù)分析庫庫名簡

介Numpy提供數(shù)組支持,以及相應(yīng)的高效處理函數(shù)Matplotlib強(qiáng)大的數(shù)據(jù)可視化工具、作圖庫Pandas強(qiáng)大的數(shù)據(jù)分析、數(shù)據(jù)處理和數(shù)據(jù)清洗工具seaborn數(shù)據(jù)可視化工具、作圖庫Scipy提供矩陣支持,以及矩陣相關(guān)的數(shù)值計算模塊sklearn經(jīng)典的機(jī)器學(xué)習(xí)庫NumpyNumPy是Python的數(shù)據(jù)分析的基本庫,是在Python的Numeric數(shù)據(jù)類型的基礎(chǔ)上,引入Scipy模塊中針對數(shù)據(jù)對象處理的功能,用于數(shù)值數(shù)組和矩陣類型的運(yùn)算、矢量處理等。MatplotlibMatplotlib具有兩個重要的模塊——pylab和pyplot。Pylab實現(xiàn)了MATLAB的繪圖功能,就是MATLAB的Python版本。pyplot主要用于將NumPy統(tǒng)計結(jié)果可視化,可以繪制線圖、直方圖、餅圖、散點(diǎn)圖以及誤差線圖等各種圖形。Pandas

Pandas的名稱來源于面板數(shù)據(jù)(PanelData)和Python數(shù)據(jù)分析(DataAnalysis),作為Python進(jìn)行數(shù)據(jù)分析和挖掘時的數(shù)據(jù)基礎(chǔ)平臺和事實上的工業(yè)標(biāo)準(zhǔn),支持關(guān)系型數(shù)據(jù)的增、刪、改、查,具有豐富的數(shù)據(jù)處理函數(shù),支持時間序列分析功能,靈活處理缺失數(shù)據(jù)等。seabornSeaborn是圖形可視化python包,作為matplotlib的補(bǔ)充,在其基礎(chǔ)上進(jìn)行了更高級的API封裝,高度兼容numpy與pandas數(shù)據(jù)結(jié)構(gòu)以及scipy等統(tǒng)計模式,能做出具有吸引力的圖。ScipyScipy是2001年發(fā)行的類似于Matlab和Mathematica等數(shù)學(xué)計算軟件的Python庫,用于統(tǒng)計、優(yōu)化、整合、線性代數(shù)模塊、傅里葉變換、信號和圖像處理等數(shù)值計算。scipy具有stats(統(tǒng)計學(xué)工具包)、erpolate(插值,線性的,三次方)、cluster(聚類)、signal(信號處理)等模塊。SklearnSklearn(又稱為scikit-learn)是簡單高效的數(shù)據(jù)挖掘和數(shù)據(jù)分析工具,基于python語言的NumPy、SciPy和matplotlib庫之上,是當(dāng)前較為流行的機(jī)器學(xué)習(xí)框架。數(shù)據(jù)分類定類數(shù)據(jù):表示個體在屬性上的特征和類別上的不同變量,只是一種標(biāo)志,沒有次序關(guān)系,不可以直接測量的數(shù)據(jù)。如外貌,出生地等。定序數(shù)據(jù):表示個體在某個有序狀態(tài)中所處的位置,不能直接做四則運(yùn)算。如學(xué)歷分為初中、高中、大學(xué)、碩士、博士等。定量數(shù)據(jù):定量數(shù)據(jù)又稱為定距數(shù)據(jù),具有間距特征的變量,可以直接測量的數(shù)據(jù),如身高、體重、氣溫等。數(shù)據(jù)統(tǒng)計量(1)極差極差又稱范圍誤差或全距,用來衡量指定變量間差異變化范圍,是最大值與最小值的差距,用于標(biāo)志值變動的最大范圍。通常極差越大,樣本變化范圍越大。(2)平均數(shù)平均值用于測量數(shù)據(jù)集中趨勢,計算公式是所有數(shù)據(jù)之和除以數(shù)據(jù)的個數(shù)。數(shù)據(jù)統(tǒng)計量(3)中位數(shù)中位數(shù)是指將樣本數(shù)值集合劃分為數(shù)量相等或相差1的上下兩部分。對于有限的數(shù)集,可以通過把所有觀察值高低排序后找出正中間的一個作為中位數(shù)。如果觀察值有偶數(shù)個,通常取最中間的兩個數(shù)值的平均數(shù)作為中位數(shù)。(4)眾數(shù)眾數(shù)是樣本觀測值在頻數(shù)分布表中頻數(shù)最多的那組數(shù)。例如:1,2,2,2,3,3,4的眾數(shù)是2。如果所有數(shù)據(jù)出現(xiàn)的次數(shù)都一樣,那么這組數(shù)據(jù)沒有眾數(shù)。例如:1,2,3,4,5沒有眾數(shù)。數(shù)據(jù)統(tǒng)計量(5)方差方差是實際值與期望值之差平方的平均值,方差是在概率論和統(tǒng)計方差衡量隨機(jī)變量或一組數(shù)據(jù)是離散程度的度量。(6)協(xié)方差協(xié)方差用于衡量兩個變量的總體誤差,兩個變量是否相對它們各自平均值有一致行為。1)如果兩個變量同時處于平均值之上或之下,兩個變量就是正關(guān)聯(lián)性。2)如果兩個變量一個處于平均值之上,另一個處于平均值之下,就是負(fù)關(guān)聯(lián)性。當(dāng)兩個變量相同時,協(xié)方差就是方差。數(shù)據(jù)統(tǒng)計量皮爾森相關(guān)系數(shù)度量兩個變量之間的相關(guān)程度其值介于-1與+1之間,表示兩變量存在一定程度的相關(guān),越接近1,兩變量間線性關(guān)系越密切;越接近于0,表示兩變量的線性相關(guān)越弱

數(shù)據(jù)可視化數(shù)據(jù)可視化是指將大型數(shù)據(jù)集中的數(shù)據(jù)以統(tǒng)計圖表和圖形圖像形式呈現(xiàn),表現(xiàn)抽象或復(fù)雜的概念、技術(shù)和信息,并利用數(shù)據(jù)分析和開發(fā)工具發(fā)現(xiàn)其中未知信息的處理過程。數(shù)據(jù)可視化起源于1960年代計算機(jī)圖形學(xué),通過計算機(jī)創(chuàng)建圖形圖表,將數(shù)據(jù)的各種屬性和變量呈現(xiàn)出來,通過餅圖、直方圖、散點(diǎn)圖、柱狀圖等原始的統(tǒng)計圖表將數(shù)據(jù)可視化是最基礎(chǔ)和常見應(yīng)用。折線圖折線圖又名線形圖,或折線統(tǒng)計圖,是以折線的上升或下降表示數(shù)量變化的統(tǒng)計圖。折線圖不僅可以表示數(shù)量的多少,而且反映同一事物在不同時間里數(shù)據(jù)的變化趨勢。

餅圖餅圖屬于最傳統(tǒng)的統(tǒng)計圖形之一,通過各扇形面積的大小反映部分與部分,部分與總體的比例關(guān)系。但不擅長對比差異不大或水平值過多的離散型變量。散點(diǎn)圖散點(diǎn)圖又稱為散點(diǎn)分布圖,和折線圖需要的數(shù)組非常相似,區(qū)別是折線圖會將各數(shù)據(jù)點(diǎn)連接起來;而散點(diǎn)圖則只是描繪各數(shù)據(jù)點(diǎn),并不會將這些數(shù)據(jù)點(diǎn)連接起來。直方圖直方圖又稱質(zhì)量分布圖,由一系列高度不等的縱向條紋和線段表示數(shù)據(jù)分布形態(tài),一般用橫軸表示數(shù)據(jù)所屬類別,縱軸表示數(shù)量或者占比。條形圖條形圖是統(tǒng)計圖資料分析中最常用的圖形,又名柱狀圖,可以清楚地表明各種數(shù)量的多少,用來描述各個類別之間的關(guān)系。箱線圖箱線圖又稱箱形圖或盒式圖,主要用于分析數(shù)據(jù)內(nèi)部的分布狀態(tài)或分散狀態(tài),不同于折線圖、柱狀圖或餅圖等傳統(tǒng)圖表只是數(shù)據(jù)大小、占比、趨勢的呈現(xiàn)。箱線圖包含統(tǒng)計學(xué)的均值、分位數(shù)、極值等統(tǒng)計量,用于分析不同類別數(shù)據(jù)平均水平差異,展示屬性與中位數(shù)離散速度,并揭示數(shù)據(jù)間離散程度、異常值、分布差異等。箱線圖是一種基于“五位數(shù)”摘要顯示數(shù)據(jù)分布的標(biāo)準(zhǔn)化方法熱力圖熱力圖又稱為熱點(diǎn)圖,也稱為交叉填充表,展示兩個離散變量的組合關(guān)系,通過每個單元格顏色的深淺代表數(shù)值的高低以及差異情況。第8章

Numpy《Python數(shù)據(jù)分析與應(yīng)用》NumPy NumPy是Python的開源數(shù)字?jǐn)U展,定義了數(shù)值數(shù)組和矩陣類型以及基本運(yùn)算的語言擴(kuò)展,用于矩陣數(shù)據(jù)、矢量處理等。 Numpy的官方網(wǎng)址/NumPyndarray屬性名含義ndarray.ndim數(shù)組的軸(維度)的數(shù)量ndarray.shape數(shù)組的維度。為一個整數(shù)元組,表示每個維度上的大小。對于一個n行m列的矩陣來說,shape就是(n,m)。shape元組的長度就是秩(或者維度的數(shù)量)ndim。ndarray.size數(shù)組的元素的總個數(shù)。這等于shape元素的乘積。ndarray.dtype用來描述數(shù)組中元素類型的對象。ndarray.itermsize數(shù)組的每個元素的字節(jié)大小。例如,一個類型為float64的元素的數(shù)組itemsize為8。ndarray.data該緩沖區(qū)包含了數(shù)組的實際元素。python提供array模塊,但是array不支持多維,也沒有各種運(yùn)算函數(shù),不適合做數(shù)值運(yùn)算。

而numpy提供的同質(zhì)多維數(shù)組ndarray正好彌補(bǔ)以上不足。創(chuàng)建數(shù)組ArrayArangeLinspacelogspace1.array創(chuàng)建數(shù)組importnumpyasnp#引入numpy庫a=np.array([[1,5],[4,5,7]])#創(chuàng)建數(shù)組,將元組或列表作為參數(shù)a5=np.array(([1,5,3,4,5],[6,7,8,9,5]))#創(chuàng)建二維的narray對象print(type(a))#a的類型是數(shù)組print(type(a5))print(a)print(a5)2.arange函數(shù)創(chuàng)建數(shù)組importnumpyasnpa=np.arange(15)#利用arange函數(shù)創(chuàng)建數(shù)組print(a)a5=np.arange(1,5,0.1)#arang函數(shù)和range函數(shù)print(a5)3.linspace用于創(chuàng)建指定數(shù)量等間隔的序列,實際生成一個等差數(shù)列importnumpyasnpa=np.linspace(0,1,15)#從0開始到1結(jié)束,共15個數(shù)的等差數(shù)列print(a)4.logspace用于生成等比數(shù)列importnumpyasnpa=np.logspace(0,5,5)#生成首位是10的0次方,末位是10的5次方,含5個數(shù)的等比數(shù)列print(a)查看數(shù)組importnumpyasnp#引入numpy庫a=np.array([[1,5],[4,5,7],3])#創(chuàng)建數(shù)組,將元組或列表作為參數(shù)a5=np.array(([1,5,3,4,5],[6,7,8,9,5]))#創(chuàng)建二維的narray對象print(type(a))#a的類型是數(shù)組print(a)print(a5)print(a.dtype)#查看a數(shù)組中每個元素的類型print(a6.dtype)#查看a5數(shù)組中每個元素的類型查看數(shù)組importnumpyasnp#引入numpy庫a=np.array([[1,5],[4,5,7],3])a5=np.array(([1,5,3,4,5],[6,7,8,9,5]))#創(chuàng)建二維narrayprint(a.shape)#查看數(shù)組的行列,3行print(a6.shape)#查看數(shù)組的行列,返回5行5列print(a.shape[0])#查看a的行數(shù)print(a6.shape[1])#查看a5的列數(shù)print(a.ndim)#獲取數(shù)組的維數(shù)print(a6.ndim)print(a6.T)#簡單轉(zhuǎn)置矩陣ndarray索引和切片importnumpyasnpa=np.array([[1,5,3,4,5],[6,7,8,9,5]])print(a)print(a[:])#選取全部元素print(a[1])#選取行為1的全部元素print(a[0:1])#截取[0,1)的元素print(a[1,5:5])#截取第二行第[5,5)的元素[895]print(a[1,:])#截取第二行,返回[67895]print(a[1,5])#截取行號為一,列號為5的元素8print(a[1][5])線性代數(shù)

數(shù)z說明函

數(shù)說

明np.zeros生成零矩陣np.ones生成所有元素為1的矩陣np.eye生成單位矩陣np.transpose矩陣轉(zhuǎn)置np.dot計算兩個數(shù)組的點(diǎn)積np.inner計算兩個數(shù)組的內(nèi)積np.diag矩陣主對角線與一維數(shù)組間轉(zhuǎn)換np.trace矩陣主對角線元素的和np.linalg.det計算矩陣行列式np.linalg.eig計算特征根與特征向量np.linalg.eigvals計算方陣特征根np.linalg.inv計算方陣的逆np.linalg.pinv計算方陣的Moore-Penrose偽逆np.linalg.solve計算Ax=b線性方程組解np.linalg.lstsq計算Ax=b的最小二乘解np.linalg.qr計算QR分解np.linalg.svd計算奇異值分解np.linalg.norm計算向量或矩陣的范數(shù)四則運(yùn)算importnumpyasnpimportnumpy.linalgaslg#求矩陣的逆需要先導(dǎo)入numpy.linalga1=np.array([[1,2,3],[4,5,6],[5,4,5]])a5=np.array([[1,5,4],[3,4,7],[7,5,6]])print(a1+a5)#相加print(a1-a5)#相減print(a1/a5)#對應(yīng)元素相除,如果都是整數(shù)則取商print(a1%a5)#對應(yīng)元素相除后取余數(shù)print(a1**5)#矩陣每個元素都取n次方矩陣運(yùn)算importnumpyasnpimportnumpy.linalgaslg#求矩陣的逆需要先導(dǎo)入numpy.linalga1=np.array([[1,2,3],[4,5,6],[5,4,5]])a5=np.array([[1,5,4],[3,4,7],[7,5,6]])print(a1.dot(a5))#點(diǎn)乘滿足:第一個矩陣的列數(shù)等于第二個矩陣的行數(shù)print(a1.transpose())#轉(zhuǎn)置等價于print(a1.T)print(lg.inv(a1))#用linalg的inv函數(shù)來求逆特征根和特征向量importnumpyasnparr=np.array([[1,2,5],[3,6,7],[4,2,9]])print('計算3×3方陣的特征根和特征向量:\n',arr)print('求解結(jié)果為:\n',np.linalg.eig(arr))多元一次方程組importnumpyasnp#多元線性方程組a=np.array([[1,3,5],[2,5,-1],[2,4,7]])b=np.array([10,6,4])x=np.linalg.solve(a,b)print(x)統(tǒng)計量

數(shù)說明函

數(shù)說

明min(arr,axis)最小值cumsum(arr,axis)軸方向計算累計和max(arr,axis)最大值cumprod(arr,axis)軸方向計算累計乘積mean(arr,axis)平均值argmin(arr,axis)軸方向最小值所在的位置median(arr,axis)中位數(shù)argmax(arr,axis)軸方向最大值所在的位置sum(arr,axis)和corrcoef(arr)計算皮爾遜相關(guān)系數(shù)std(arr,axis)標(biāo)準(zhǔn)差cov(arr)計算協(xié)方

溫馨提示

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

最新文檔

評論

0/150

提交評論