




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
Python數(shù)據(jù)分析基礎(chǔ)教程(第2版)
第5章用NumPy進(jìn)行簡單統(tǒng)計分析學(xué)習(xí)目標(biāo)
掌握使用NumPy讀寫文件方法。
了解NumPy中常用的統(tǒng)計函數(shù)。
掌握運用NumPy函數(shù)進(jìn)行統(tǒng)計分析。
掌握數(shù)據(jù)處理中簡單的統(tǒng)計分析。123文件的讀寫操作NumPy常用的統(tǒng)計函數(shù)使用NumPy函數(shù)進(jìn)行統(tǒng)計分析簡單的統(tǒng)計分析4目錄CONTEN56項目實踐本章小結(jié)
在數(shù)據(jù)分析中,經(jīng)常需要從文件中讀取數(shù)據(jù)或?qū)?shù)據(jù)寫入文件,常用的存儲文件的格式有TXT格式、CSV格式、二進(jìn)制格式和多維數(shù)據(jù)格式等。
在NumPy中,loadtxt()和savetxt()函數(shù)可以對文件后綴名為txt和csv的文件進(jìn)行讀寫操作。5.1.1使用NumPy讀寫文本文件將一維或二維數(shù)組寫入TXT文件或CSV文件在NumPy中,使用savetxt()函數(shù)可以將一維或二維數(shù)組寫入擴(kuò)展名為.txt或.csv的文件。該函數(shù)的格式如下。
numpy.savetxt(fname,array,fmt='%.18e',delimiter=None,newline='\n',header='',footer='',comments='#',encoding=latin1)該函數(shù)中的參數(shù)說明如下。fname:文件名或文件句柄,可以是擴(kuò)展名為.gz或.bz2的壓縮文件。array:寫入文件的數(shù)組(一維數(shù)組或者二維數(shù)組)。fmt:寫入文件的格式,例如%d、%.2f、%.18e,默認(rèn)值是%.18e。
delimiter:分隔符,默認(rèn)值為空格。
newline:換行符。
header:在文件開頭寫入的字符串。
5.1.1使用NumPy讀寫文本文件將一維或二維數(shù)組寫入TXT文件或CSV文件在NumPy中,使用savetxt()函數(shù)可以將一維或二維數(shù)組寫入擴(kuò)展名為.txt或.csv的文件。該函數(shù)的格式如下。
numpy.savetxt(fname,array,fmt='%.18e',delimiter=None,newline='\n',header='',footer='',comments='#',encoding=latin1)該函數(shù)中的參數(shù)說明如下。
footer:在文件末尾寫入的字符串。
comments:為添加到文件開頭和文件末尾的字符串標(biāo)記注釋符,默認(rèn)值為#。encoding:設(shè)置輸出文件的編碼,默認(rèn)值為latin1。
【例5-1】創(chuàng)建一個元素范圍為0~11的3行4列的數(shù)組,然后設(shè)置不同的參數(shù),將該數(shù)組寫入TXT文件和CSV文件。示例代碼test5-1.py。5.1.1使用NumPy讀寫文本文件2.讀取TXT文件和CSV文件
在NumPy中,用于讀取TXT文件和CSV文件的函數(shù)是loadtxt(),函數(shù)格式:numpy.loadtxt(fname,dtype=<type'float'>,comments='#',delimiter=None,converters=None,skiprows=0,usecols=None,unpack=False,ndmin=0,encoding='bytes')
函數(shù)中主要參數(shù):fname是文件、字符串或產(chǎn)生器;dtype:數(shù)據(jù)類型;delimiter:分割符,默認(rèn)是空格,其他參數(shù)說明見教材。
【例5-2】利用NumPy函數(shù)實現(xiàn)讀取文本文件和CSV文件的操作。5.1.1使用NumPy讀寫文本文件使用save()或savez()函數(shù)寫二進(jìn)制文件save()或savez()函數(shù)的格式:
numpy.save(file,array)或numpy.savez(file,array)
函數(shù)中參數(shù)說明:file:文件,以.npy為擴(kuò)展名,壓縮擴(kuò)展名為.npz。
array:數(shù)組變量。使用load()函數(shù)讀取二進(jìn)制文件load()函數(shù)的格式:numpy.load(file)
函數(shù)中參數(shù)說明:file:文件,以.npy為擴(kuò)展名,壓縮擴(kuò)展名為.npzload()、save()和savez()函數(shù)的示例代碼example5-1.py見教材。5.1.2使用NumPy讀寫二進(jìn)制文件使用tofile()函數(shù)寫入多維數(shù)據(jù)文件tofile()函數(shù)的格式:
數(shù)組名.tofile(fid,sep='',format='%s')
函數(shù)中的參數(shù)說明:fid:文件、字符串,sep:數(shù)據(jù)分割符,format:寫入數(shù)據(jù)的格式
。使用fromfile()函數(shù)讀取多維數(shù)據(jù)文件fromfile()函數(shù)的格式:
numpy.fromfile(fid,dtype=float,count=‐1,sep='')
函數(shù)中的參數(shù)說明:fid:文件、字符串,dtype:讀取的數(shù)據(jù)類型。count:讀入元素個數(shù),‐1表示讀入整個文件,sep:數(shù)據(jù)分割符。tofile()和fromfile()函數(shù)的示例代碼example5-2.py5.1.3使用NumPy讀寫多維數(shù)據(jù)文件
1.求最大值和最小值的函數(shù)
在NumPy中,求數(shù)組最大值的函數(shù)是amax()和nanmax(),求數(shù)組最小值函數(shù)是amin()和nanmin(),其中,amax()和amin()函數(shù)是返回一個數(shù)組的最大值和最小值或者是沿軸返回數(shù)組的最大值和最小值。nanmax()函數(shù)和nanmin()函數(shù)是返回忽略任何NaN的數(shù)組的最大值和最小值或者是沿軸返回忽略任何NaN的數(shù)組的最大值和最小值。如數(shù)組是全NaN切片時,將會出現(xiàn)運行警告(RuntimeWarning),并為該切片返回NaN。
最大值和最小值的函數(shù)的示例代碼example5-3.py見教材。5.2NumPy常用的統(tǒng)計函數(shù)
2.求沿軸方向的取值范圍
在NumPy中,使用ptp()函數(shù)能返回沿某軸方向上的最大值-最小區(qū)差值,即maximum-minimum的值形成的數(shù)組。ptp()函數(shù)的示例代碼example5-4見教材。3.求百分位數(shù)
在NumPy中,使用percentile()和nanpercentile()函數(shù)可以沿某軸方向計算數(shù)組中第q數(shù)值的百分位數(shù)。4.求中位數(shù)
在NumPy中,使用median()和nanmedian()函數(shù)可以沿某軸方向計算數(shù)組中的中位數(shù)。nanmedian()函數(shù)用于求數(shù)組沿某軸方向上忽略NaN值的中位數(shù)。
求百分位數(shù)和中位數(shù)的示例代碼example5-5.py見教材。5.2NumPy常用的統(tǒng)計函數(shù)
5.求和與加權(quán)平均值
在NumPy中,sum()函數(shù)是沿某軸方向計算數(shù)組中相關(guān)元素之和,
average()函數(shù)是沿某軸方向計算數(shù)組中相關(guān)元素的加權(quán)平均值。
求和與加權(quán)平均值的示例代碼example5-6.py見教材。6.算術(shù)平均數(shù)
算術(shù)平均數(shù)是所有元素的總和除以元素數(shù)量的結(jié)果。在NumPy中,mean()和nanmean()函數(shù)可以計算數(shù)組或者軸方向的算術(shù)平均數(shù)。5.2NumPy常用的統(tǒng)計函數(shù)7.標(biāo)準(zhǔn)差
標(biāo)準(zhǔn)差也稱為標(biāo)準(zhǔn)偏差,其定義是總體中各單位標(biāo)準(zhǔn)值與其平均數(shù)離差平方的算術(shù)平均數(shù)的平方根,它反映了組內(nèi)個體間的離散程度。在NumPy中,用于計算標(biāo)準(zhǔn)差的函數(shù)有std()和nanstd()。8.方差
方差是元素與元素的平均數(shù)差的平方的平均數(shù)。在NumPy中,用于計算方差的函數(shù)有var()和nanvar()。
計算算術(shù)平均數(shù)、標(biāo)準(zhǔn)差與方差的示例代碼example5-7.py見教材。5.2NumPy常用的統(tǒng)計函數(shù)NumPy的排序方式主要分為直接排序和間接排序兩種。直接排序是指對數(shù)值直接進(jìn)行排序;間接排序是指根據(jù)一個或多個鍵對數(shù)組進(jìn)行排序。在NumPy中,直接排序常用是sort()函數(shù),而間接排序常用是argsort()函數(shù)和lexsort()函數(shù)。1.sort()函數(shù)sort()函數(shù)作用是返回輸入數(shù)組的排序副本。函數(shù)格式如下。numpy.sort(arr[,axis,kind,order])
參數(shù):arr:輸入數(shù)組。axis:指定沿著某個軸排序數(shù)組,axis=0表示按列排序,axis=1表示按行排序,
若沒有設(shè)置axis,則按行排序。5.3.1NumPy的排序函數(shù)1.sort()函數(shù)sort()函數(shù)作用是返回輸入數(shù)組的排序副本。函數(shù)格式如下。numpy.sort(arr[,axis,kind,order])
參數(shù):kind:指定排序算法是快速排序(quicksort)、歸并排序(mergesort)、堆排序(heapsort),默認(rèn)值是quicksort。order:如果數(shù)組包含字段,則用于指明排序的字段。sort()函數(shù)除了arr參數(shù)外,其余參數(shù)都為可選參數(shù)。sort()函數(shù)示例代碼example5-8.py。5.3.1NumPy的排序函數(shù)2.argsort()函數(shù)argsort()函數(shù)作用是對輸入數(shù)組沿著給定軸執(zhí)行間接排序,并根據(jù)指定排序類型返回數(shù)據(jù)的索引數(shù)組。使用該索引數(shù)組可以獲得排序數(shù)據(jù)。argsort()函數(shù)示例代碼example5-9.py見教材。3.lexsort()函數(shù)lexsort()函數(shù)使用鍵序列執(zhí)行間接排序,鍵可以看作是電子表格中的一列,最后一個鍵是排序的主鍵,該函數(shù)返回一個索引數(shù)組。使用該索引數(shù)組可以獲得排序數(shù)據(jù)。示例代碼example5-10.py見教材。5.3.1NumPy的排序函數(shù)
在數(shù)據(jù)處理過程中,難免會出現(xiàn)“臟”數(shù)據(jù)的情況,而重復(fù)數(shù)據(jù)就是“臟”數(shù)據(jù)情況之一。在NumPy中,可以通過unique()函數(shù)找出數(shù)組中去重后的元素并返回已排序的數(shù)組,從而實現(xiàn)去除數(shù)組中重復(fù)數(shù)據(jù)的目的。1.unique()函數(shù)unique()函數(shù)可以返回輸入數(shù)組中所有不同的值(即去重后的值),并且按照從小到大的順序排列。即unique()函數(shù)能夠返回由輸入數(shù)組中的去重后的值組成的去重數(shù)組、去重數(shù)組的索引數(shù)組、去重數(shù)組的下標(biāo)和去重值的重復(fù)數(shù)量等結(jié)果。5.3.2NumPy的去重與重復(fù)函數(shù)unique()函數(shù)unique()函數(shù)格式如下。
numpy.unique(arr,return_index,return_inverse,return_counts)
參數(shù):arr表示輸入的數(shù)組,如果不是一維數(shù)組則會展開;return_index:如果為true,返回輸入數(shù)組中去重數(shù)組的索引數(shù)組;return_inverse:如果為true,返回去重數(shù)組的下標(biāo),可用于重構(gòu)輸入數(shù)組;
return_counts:如果為true,返回去重數(shù)組中的元素在原數(shù)組中的出現(xiàn)次數(shù)。unique()函數(shù)的示例代碼example5-11.py。5.3.2NumPy的去重與重復(fù)函數(shù)2.tile()函數(shù)
tile()函數(shù)是模板numpy.lib.shape_base中的函數(shù)。該函數(shù)作用是將一個已有的數(shù)組重復(fù)一定的次數(shù)。tile()函數(shù)的示例代碼example5-12.py見教材。repeat()函數(shù)repeat()函數(shù)是指定需求重復(fù)的數(shù)組元素,沿著哪個軸進(jìn)行重復(fù)多少次。repeat()函數(shù)的示例代碼example5-13.py見教材。5.3.2NumPy的去重與重復(fù)函數(shù)1.argmin()、nanargmin()、argmax()函數(shù)argmin()和argmax()函數(shù)作用是沿指定軸返回最小和最大元素的索引。nanargmin()函數(shù)作用是沿指定軸返回忽略了NaN的最小值的索引。argmin()、nanargmin()、argmax()函數(shù)的示例代碼example5-14.py見教材2.nonzero()函數(shù)nonzero()函數(shù)作用是返回輸入數(shù)組中非零元素的索引。5.3.3NumPy的搜索和計數(shù)函數(shù)3.where()函數(shù)where()函數(shù)作用是返回輸入數(shù)組中滿足給定條件x的元素的索引或者是當(dāng)給定的條件x為True時,返回y數(shù)據(jù),否則返回z數(shù)據(jù)。該函數(shù)的格式如下。numpy.where(x[,y,z])其中,x為條件表達(dá)式;y為x為True時的取值;z為x為False時的取值。5.3.3NumPy的搜索和計數(shù)函數(shù)4.extract()函數(shù)extract()函數(shù)作用是返回滿足任何條件的元素。該函數(shù)的格式如下。numpy.extract(x,a)其中,x為條件表達(dá)式;a為輸入數(shù)組。extract()函數(shù)的示例代碼。5.3.3NumPy的搜索和計數(shù)函數(shù)5.count_nonzero()計數(shù)函數(shù)count_nonzero()函數(shù)可以統(tǒng)計NumPy數(shù)組中非0元素的個數(shù)。該函數(shù)的格式如下。
numpy.count_nonzero(a)
其中,a為輸入數(shù)組。5.3.3NumPy的搜索和計數(shù)函數(shù)
利用NumPy可以對大數(shù)據(jù)進(jìn)行簡單的統(tǒng)計分析,它包括數(shù)據(jù)文件的讀取、數(shù)據(jù)列的提取、數(shù)據(jù)類型的轉(zhuǎn)換和各種統(tǒng)計計算,還有數(shù)據(jù)的排序、搜索和計數(shù)等?,F(xiàn)以中國歷史地震數(shù)據(jù)分析為例來介紹簡單的統(tǒng)計分析思路。【例5-3】將中國歷史地震數(shù)據(jù)文件命名為earthquakes.csv文件。該文件中包含的數(shù)據(jù)列有日期、時間、地震發(fā)生緯度與經(jīng)度、深度(km)、震級、烈度和精確度等。數(shù)據(jù)包括1969年12月22日以前中國歷史上所發(fā)生的地震數(shù)據(jù),其中部分?jǐn)?shù)據(jù)列表顯示如下。5.4簡單的統(tǒng)計分析中國歷史地震數(shù)據(jù)統(tǒng)計要完成的數(shù)據(jù)分析任務(wù)。1.計算震級和烈度的最大值、最小值、算術(shù)平均值和中位數(shù)。
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年教師招聘考試試卷及答案
- 2025年城市規(guī)劃師考試試題及答案
- 2025年翻譯專業(yè)資格考試試卷及答案
- 2025年甘肅省平?jīng)鍪刑貚徑處熣衅?0人筆試參考題庫及參考答案詳解一套
- 物資采購使用管理制度
- 特殊家庭學(xué)生管理制度
- 特殊工種離職管理制度
- 特殊物品儲存管理制度
- 特殊藥品存放管理制度
- 特殊設(shè)施設(shè)備管理制度
- 關(guān)于深圳的英語作文
- 急性心肌梗死溶栓護(hù)理查房
- 珠寶品鑒會策劃方案
- 《井巷工程質(zhì)量》課件
- 干貨酒店OTA運營之酒店如何做好OTA數(shù)據(jù)運營
- 旅游景觀欣賞的方法課件
- 劉鐵敏《金融專業(yè)英語》(第2版)-習(xí)題參考答案20
- 智能電網(wǎng)安全體系
- 以“勝任力”為導(dǎo)向的腎臟泌尿整合智慧樹知到課后章節(jié)答案2023年下上海市同濟(jì)醫(yī)院
- 動火作業(yè)許可證
- 對學(xué)生課后作業(yè)的調(diào)查報告
評論
0/150
提交評論