版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
人工智能技術(shù)開發(fā)框架計(jì)算機(jī)與軟件學(xué)院第三章數(shù)據(jù)處理與分析工具01AI應(yīng)用開發(fā)概述02FlaskWEB應(yīng)用開發(fā)03人工智能技術(shù)與應(yīng)用04機(jī)器學(xué)習(xí)框架Scikit-Learn05深度學(xué)習(xí)框架Tensorflow203數(shù)據(jù)處理與分析工具數(shù)據(jù)處理與分析數(shù)據(jù)處理數(shù)據(jù)可視化數(shù)據(jù)處理工具NumpyPandasNumpy創(chuàng)建數(shù)組查看數(shù)組維度和類型數(shù)組元素的訪問及索引Numpy的運(yùn)算數(shù)組的維度變換數(shù)組的排序及索引數(shù)組的文件操作(數(shù)據(jù)文件存儲(chǔ)、數(shù)據(jù)文件導(dǎo)入)Numpy是Python科學(xué)計(jì)算的基礎(chǔ)庫,主要提供了高性能的N維數(shù)組實(shí)現(xiàn)以及計(jì)算能力,還提供了和其他語言如C/C++集成的能力,此外還實(shí)現(xiàn)了一些基礎(chǔ)的數(shù)學(xué)算法,如線性代數(shù)相關(guān)、傅里葉變換及隨機(jī)數(shù)生成等。Numpy:創(chuàng)建數(shù)組通過python的list列表創(chuàng)建數(shù)組通過Numpy的函數(shù)創(chuàng)建數(shù)組Numpy:通過python的list列表創(chuàng)建數(shù)組a=np.array([1,2,3,4])b=np.array([[1,2],[3,4],[5,6]])#查看array的屬性,包括數(shù)據(jù)的維度和類型print(b.ndim)print(b.shape)print(b.dtype)Numpy:通過Numpy的函數(shù)創(chuàng)建數(shù)組#創(chuàng)建等差一維數(shù)組,步長為1c=np.arange(10)print("c=",c)#創(chuàng)建等差一維數(shù)組,[0,2]分成11等分后的數(shù)組d=np.linspace(0,2,11)print("d=",d)#創(chuàng)建3×3的全1數(shù)組e=np.ones((3,3))print("e=",e)#創(chuàng)建3×6的全零數(shù)組f=np.zeros((3,6))print("f=",f)#創(chuàng)建4×4的對角數(shù)組g=np.eye(4)print("g=",g)#創(chuàng)建6×4的隨機(jī)數(shù)組h=np.random.randn(6,4)print("h=",h)Numpy:數(shù)組元素的訪問及索引——1維數(shù)組a=np.arange(10)print(a)print(a[0],a[3],a[-1])print(a[:4])print(a[3:7])print(a[6:])print(a[2:8:2])#3個(gè)參數(shù)表示起始、結(jié)束和步長,不包含結(jié)束位置print(a[2::2])#結(jié)束位置可以省略print(a[::3])#開始和結(jié)束都省略Numpy:數(shù)組元素的訪問及索引——2維數(shù)組a=np.arange(0,51,10).reshape(6,1)+np.arange(6)#一維向量,1×6數(shù)組矩陣print(np.arange(0,51,10))#轉(zhuǎn)變成6×1數(shù)組矩陣print(np.arange(0,51,10).reshape(6,1))#一維向量,1×6數(shù)組矩陣print(np.arange(6))#兩個(gè)矩陣相加運(yùn)算print(a)#以下為對二維數(shù)組矩陣進(jìn)行索引切片操作print(a[0,0],a[2,-1])print(a[0,2:5])print(a[:3,3:])print(a[2,:])print(a[:,3])#結(jié)果應(yīng)該是列向量,Numpy自動(dòng)轉(zhuǎn)換行向量print(a[:,::2])print(a[::2,::3])Numpy:Numpy的運(yùn)算數(shù)組和標(biāo)量的運(yùn)算數(shù)組與數(shù)組之間的運(yùn)算矩陣的內(nèi)積運(yùn)算數(shù)組的比較運(yùn)算數(shù)組的內(nèi)置函數(shù)數(shù)組的統(tǒng)計(jì)運(yùn)算Numpy:數(shù)組和標(biāo)量的運(yùn)算最簡單的數(shù)值計(jì)算是數(shù)組和標(biāo)量進(jìn)行計(jì)算,計(jì)算過程是直接把數(shù)組里的元素和標(biāo)量逐個(gè)進(jìn)行計(jì)算a=np.arange(6)print(a)print(a+5)#數(shù)組和標(biāo)量加法#創(chuàng)建1~5之間的20個(gè)隨機(jī)整數(shù),形成一維向量,即1×20的數(shù)組矩陣b=np.random.randint(1,5,20)print(b)#將1×20的數(shù)組矩陣構(gòu)建出4×5的數(shù)組矩陣c=b.reshape(4,5)print(c)print(c*3)#數(shù)組和標(biāo)量乘法Numpy:數(shù)組與數(shù)組之間的運(yùn)算數(shù)組和數(shù)組的運(yùn)算,如果數(shù)組的維度相同,那么在組里對應(yīng)位置進(jìn)行逐個(gè)元素的數(shù)學(xué)運(yùn)算。#創(chuàng)建5×4數(shù)組矩陣,元素是1~5隨機(jī)整數(shù)a=np.random.random_integers(1,5,(5,4))print(a)#創(chuàng)建一個(gè)5×4的數(shù)組矩陣,每個(gè)元素都是1b=np.ones((5,4),dtype=int)print(b)#數(shù)組加法a+bprint(a+b)#創(chuàng)建3×4數(shù)組矩陣,元素是1~5的隨機(jī)整數(shù)c=np.random.random_integers(1,5,(3,4))print(c)#創(chuàng)建3×4的數(shù)組矩陣,元素是1~5隨機(jī)整數(shù)d=np.random.random_integers(1,5,(3,4))print(d)#數(shù)組相乘,逐元素相乘,不是矩陣內(nèi)積運(yùn)算c*dprint(c*d)Numpy:矩陣的內(nèi)積運(yùn)算
#創(chuàng)建一個(gè)3×2的數(shù)組矩陣,每個(gè)元素是1~5的隨機(jī)整數(shù),random_integers函數(shù)包含末尾數(shù)5a=np.random.random_integers(1,5,(3,2))print(a)#創(chuàng)建一個(gè)2×3的數(shù)組矩陣,每個(gè)元素是1~5的隨機(jī)整數(shù)b=np.random.random_integers(1,5,(2,3))print(b)#矩陣內(nèi)積np.dot(a,b)print(np.dot(a,b))數(shù)組的乘法是對應(yīng)元素相乘,不是矩陣內(nèi)積,矩陣內(nèi)積使用的是np.dot()函數(shù)Numpy:數(shù)組的比較運(yùn)算數(shù)組可以直接進(jìn)行比較,返回一個(gè)同維度的布爾數(shù)組。針對布爾數(shù)組,可以使用all()/any()函數(shù)來返回布爾數(shù)組的標(biāo)量值a=np.array([1,2,3,4])b=np.array([4,2,2,4])print(a==b)print(a>b)print((a==b).all())#必須布爾矩陣中所有元素均為True時(shí)結(jié)果才為Trueprint((a==b).any())#只要布爾矩陣中有任一元素為True時(shí)結(jié)果就為TrueNumpy:數(shù)組的內(nèi)置函數(shù)a=np.arange(6)print(a)#求余弦print(np.(a))cos#求指數(shù)print(np.exp(a))#求平方根print(np.sqrt(a))Numpy:數(shù)組的統(tǒng)計(jì)運(yùn)算:一維數(shù)組#創(chuàng)建6個(gè)元素的一維向量,元素為1~5之間隨機(jī)整數(shù)a=np.random.random_integers(1,5,6)print(a)#求和print(a.sum())#求平均值print(a.mean())#求標(biāo)準(zhǔn)差print(a.std())#求最小值print(a.min())#求最大值print(a.max())#最小值元素所在的索引print(a.argmin())#最大值元素所在的索引print(a.argmax())Numpy:數(shù)組的統(tǒng)計(jì)運(yùn)算:二維數(shù)組針對二維數(shù)組或者更高維度的數(shù)組,可以根據(jù)行或列來計(jì)算。axis參數(shù)表示坐標(biāo)軸,0表示按列計(jì)算,1表示按行計(jì)算。需要特別注意的是,按列計(jì)算后,Numpy會(huì)將計(jì)算結(jié)果默認(rèn)轉(zhuǎn)換為行向量#創(chuàng)建一個(gè)6×4二維數(shù)組矩陣,每個(gè)元素的值為1~5之間的隨機(jī)整數(shù)b=np.random.random_integers(1,5,(6,4))print(b)#求矩陣中所有元素的和print(b.sum())#按照矩陣的列求和,axis=0表示按列print(b.sum(axis=0))#按照矩陣的行求和,axis=1表示按行print(b.sum(axis=1))#先按照行求和,得到一個(gè)數(shù)組,再將數(shù)組的所有元素求和print(b.sum(axis=1).sum())#按照矩陣的行求每一行的最小值print(b.min(axis=1))#按照矩陣的行求每一行的最小值所對應(yīng)的索引值(指的是在特定行的索引)print(b.argmin(axis=1))#按照矩陣的行求每一行的標(biāo)準(zhǔn)差print(b.std(axis=1))Numpy:數(shù)組的維度變換reshape():轉(zhuǎn)換維度,變成多維數(shù)組ravel():將多維數(shù)組“攤平”,變成一維向量#創(chuàng)建一維向量,元素為1~3的4個(gè)整數(shù)a=np.arange(4)print(a)#打印維度信息,為(4,),即只有第1維具有4個(gè)元素,沒有第2維print(a.shape)#在列上添加一個(gè)維度,緯度信息為(4,1),變成4×l數(shù)組,其自身位于第1列b=a[:,np.newaxis]print(b)#打印維度信息,為(4,1),即4×1的數(shù)組print(b.shape)#在行上添加一個(gè)維度,緯度信息為(1,4),變成l×4數(shù)組,其自身位于第1行c=a[np.newaxis,:]print(c)#打印緯度信息,為(1,4),即l×4的數(shù)組print(c.shape)#創(chuàng)建一維向量,元素為1~11的12個(gè)整數(shù)a=np.arange(12)print(a)#轉(zhuǎn)換為4×3的二維數(shù)組b=a.reshape(4,3)print(b)#變?yōu)橐痪S向量,轉(zhuǎn)換時(shí)按照行的順序進(jìn)行排列,第2行接在第1行的末尾print(b.ravel())Numpy:數(shù)組的排序及索引#創(chuàng)建6×4的二維數(shù)組,元素為1~10的10個(gè)隨機(jī)整數(shù)a=np.random.random_integers(1,10,(6,4))print(a)#按行獨(dú)立排序,返回一個(gè)備份b,即a不變b=np.sort(a,axis=1)print(b)#按列排序,直接把結(jié)果保存到當(dāng)前數(shù)組a.sort(axis=0)print(a)#創(chuàng)建由6個(gè)1~10的隨機(jī)整數(shù)構(gòu)成的一維向量a=np.random.random_integers(1,10,6)#打印排序前的aprint(a)#此時(shí)的a仍然是排序前的數(shù)組idx=a.argsort()#打印排序前的aprint(a)#假如將a排序后,a中各個(gè)元素在排序前的索引值print(idx)#a仍然是原始的排序前的a,而a[idx]是一個(gè)虛擬的排序后的aprint(a[idx])#將虛擬的排序后的數(shù)組,賦值給b,使得b成為物理上排序后的數(shù)組b=a[idx]#a仍然是排序前的數(shù)組,而b是排序后的數(shù)組print(b)#由于a并沒有物理上的排序操作,因此a仍然是排序前的a,下面打印出排序前的aprint(a)Numpy:數(shù)組的文件操作:文件存儲(chǔ)、導(dǎo)入Numpy數(shù)組作為文本文件,可以直接保存到文件系統(tǒng)里,也可以從文件系統(tǒng)里讀取出數(shù)據(jù),也可以直接保存為Numpy特有的二進(jìn)制格式a=np.arange(15).reshape(3,5)#將數(shù)組保存文本文件np.savetxt("test.txt",a)#保存時(shí)將整型轉(zhuǎn)換成浮點(diǎn)型#讀取文本文件,恢復(fù)成數(shù)組b=np.loadtxt("test.txt")print(b)#將數(shù)組保存為二進(jìn)制文件np.save("test.npy",a)#讀取二進(jìn)制文件,恢復(fù)成數(shù)組c=np.load("test.npy")print(c)PandasPandas的基本數(shù)據(jù)結(jié)構(gòu):Series數(shù)據(jù)結(jié)構(gòu):行數(shù)據(jù),一維數(shù)組DataFrame數(shù)據(jù)結(jié)構(gòu):行列數(shù)據(jù),二維數(shù)組,每一行或者列都是Series結(jié)構(gòu)。DataFrame里的數(shù)據(jù)實(shí)際是用Numpy的array對象來保存的。Pandas是一個(gè)強(qiáng)大的時(shí)間序列數(shù)據(jù)處理工具包,最初開發(fā)的目的是為了分析財(cái)經(jīng)數(shù)據(jù),現(xiàn)在已經(jīng)廣泛應(yīng)用在Python數(shù)據(jù)分析領(lǐng)域中#Series對象可以理解為一維數(shù)組s=pd.Series([4,2,5,0,6,3])print(s)#DataFrame是二維數(shù)組對象df=pd.DataFrame(np.random.randn(6,4),columns=list('ABCD'))print(df)#打印某一行數(shù)據(jù)print(df.iloc[0])#打印某一列數(shù)據(jù)print(df.A)#查看數(shù)據(jù)的維度信息print(df.shape)#查看前幾行數(shù)據(jù)df.head(3)#查看后幾行數(shù)據(jù)df.tail(2)#查看行索引信息print(df.index)#查看列索引信息print(df.columns)#查看數(shù)據(jù)的統(tǒng)計(jì)信息,算出每列的元素個(gè)數(shù)、平均值、標(biāo)準(zhǔn)差、最小值、最大值及幾種中位數(shù)的值print(df.describe())Pandas:數(shù)據(jù)映射通過Series.map()函數(shù)對數(shù)據(jù)進(jìn)行轉(zhuǎn)換映射#創(chuàng)建一個(gè)Series對象aa=pd.Series(['Java','C','C++'])print(a)#對a中的數(shù)據(jù)進(jìn)行映射轉(zhuǎn)換b=a.map({'Java':'11','C':'22','C++':'33'})print(b)Pandas:數(shù)據(jù)排序通過DataFrame.sort_index()函數(shù)對索引進(jìn)行排序,通過DataFrame.sort_values()對數(shù)值進(jìn)行排序#DataFrame是二維數(shù)組對象df=pd.DataFrame(np.random.randn(6,4),columns=list('ABCD'))print(df)#根據(jù)列名稱進(jìn)行逆序排列,axis=1表示按列print(df.sort_index(axis=1,ascending=False))#根據(jù)B這一列的數(shù)據(jù)從小到大進(jìn)行排序print(df.sort_values(by='B'))Pandas:數(shù)據(jù)訪問#DataFrame是二維數(shù)組對象df=pd.DataFrame(np.random.randn(6,4),columns=list('ABCD'))print(df)#獲取原始數(shù)據(jù),不包含行號(hào)、列名稱,只包含純數(shù)據(jù)print(df.values)#通過行索引范圍來訪問特定幾行的數(shù)據(jù)print(df[3:5])#選擇A、B、D這3列數(shù)據(jù):print(df[['A','B','D']])#通過標(biāo)簽來選擇某個(gè)元素print(df.loc[3,'A'])根據(jù)行索引,或者列名稱來訪問多個(gè)數(shù)據(jù),或者通過數(shù)組索引訪問特定元素#通過數(shù)組索引來訪問某個(gè)元
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 45111-2024保護(hù)層分析(LOPA)、安全完整性等級(jí)(SIL)定級(jí)和驗(yàn)證質(zhì)量控制導(dǎo)則
- BIM工程師-全國《BIM應(yīng)用技能資格》考前沖刺2
- 浙江省溫州市龍港市2024年中考數(shù)學(xué)二模試題附答案
- 電子政務(wù)提高公共服務(wù)效率
- 幼兒園大班數(shù)學(xué)測試題
- 高一化學(xué)教案:第二單元化學(xué)反應(yīng)中的熱量
- 2024高中地理第1章區(qū)域地理環(huán)境與人類活動(dòng)第4節(jié)第1課時(shí)資源跨區(qū)域調(diào)配精練含解析湘教版必修3
- 2024高中語文第6單元墨子蚜第1課兼愛訓(xùn)練含解析新人教版選修先秦諸子蚜
- 2024高中語文第六單元文無定格貴在鮮活種樹郭橐駝傳作業(yè)含解析新人教版選修中國古代詩歌散文欣賞
- 2024高考化學(xué)一輪復(fù)習(xí)第一部分考點(diǎn)10氯及其化合物強(qiáng)化訓(xùn)練含解析
- 2025湖北襄陽市12345政府熱線話務(wù)員招聘5人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025年河北省職業(yè)院校技能大賽智能節(jié)水系統(tǒng)設(shè)計(jì)與安裝(高職組)考試題庫(含答案)
- 2024年下半年鄂州市城市發(fā)展投資控股集團(tuán)限公司社會(huì)招聘【27人】易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- GB/T 29498-2024木門窗通用技術(shù)要求
- 《職業(yè)院校與本科高校對口貫通分段培養(yǎng)協(xié)議書》
- 人教版(2024)英語七年級(jí)上冊單詞表
- 中醫(yī)養(yǎng)生產(chǎn)業(yè)現(xiàn)狀及發(fā)展趨勢分析
- 2023年浙江省溫州市中考數(shù)學(xué)真題含解析
- 司庫體系建設(shè)
- 居間合同范本解
- 機(jī)電傳動(dòng)單向數(shù)控平臺(tái)-礦大-機(jī)械電子-有圖
評(píng)論
0/150
提交評(píng)論