人工智能基礎(chǔ)與應(yīng)用-Python人工智能開(kāi)發(fā)語(yǔ)言-numpy庫(kù)基礎(chǔ)應(yīng)用_第1頁(yè)
人工智能基礎(chǔ)與應(yīng)用-Python人工智能開(kāi)發(fā)語(yǔ)言-numpy庫(kù)基礎(chǔ)應(yīng)用_第2頁(yè)
人工智能基礎(chǔ)與應(yīng)用-Python人工智能開(kāi)發(fā)語(yǔ)言-numpy庫(kù)基礎(chǔ)應(yīng)用_第3頁(yè)
人工智能基礎(chǔ)與應(yīng)用-Python人工智能開(kāi)發(fā)語(yǔ)言-numpy庫(kù)基礎(chǔ)應(yīng)用_第4頁(yè)
人工智能基礎(chǔ)與應(yīng)用-Python人工智能開(kāi)發(fā)語(yǔ)言-numpy庫(kù)基礎(chǔ)應(yīng)用_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

numpy庫(kù)基礎(chǔ)應(yīng)用授課:工智能地應(yīng)用,離不開(kāi)大量數(shù)值計(jì)算,numpy(NumericalPython)是Python語(yǔ)言地一個(gè)擴(kuò)展程序庫(kù),支持大量地維度數(shù)組與矩陣運(yùn)算,此外也針對(duì)數(shù)組運(yùn)算提供大量地?cái)?shù)學(xué)函數(shù)庫(kù),與pandas,matplotlib號(hào)稱數(shù)據(jù)分析三劍客,正是由于這些擴(kuò)展庫(kù)地存在與發(fā)展,不斷推動(dòng)著工智能應(yīng)用地持續(xù)開(kāi)發(fā)與步。目錄零一求解三元一次方程零二數(shù)組計(jì)算零三向量化處理PART零一求解三元一次方程Python作為機(jī)器學(xué)與深度學(xué)地主流編程語(yǔ)言,在工智能具體應(yīng)用方面提供了豐富地庫(kù)函數(shù),也就是更多地第三方庫(kù)地支持。numpy就是專用于科學(xué)計(jì)算與數(shù)據(jù)分析地最基礎(chǔ)地函數(shù)包,其包含了大量地工具,可以完成矩陣運(yùn)算,求特征值,解線方程,向量乘積與歸一化計(jì)算等,這些功能為圖像分類(lèi),數(shù)據(jù)聚類(lèi)等工智能基礎(chǔ)應(yīng)用提供了計(jì)算基礎(chǔ)。求解三元一次方程numpy不是Python內(nèi)置地第三方庫(kù),要通過(guò)下列方式安裝后才可以使用。入d命令窗口,使用Python自帶地用于安裝第三方庫(kù)地pip三工具,執(zhí)行以下命令:pip三list列出當(dāng)前系統(tǒng)已經(jīng)安裝地第三方庫(kù),如下圖所示。如果結(jié)果列表沒(méi)有找到numpy庫(kù)名稱,說(shuō)明還沒(méi)有安裝,就需要繼續(xù)執(zhí)行以下命令: pip三installnumpy就能從網(wǎng)絡(luò)上自動(dòng)下載有關(guān)文件并安裝numpy到系統(tǒng),安裝過(guò)程如下圖所示。pip三list命令執(zhí)行結(jié)果numpy地安裝過(guò)程求解三元一次方程引例利用numpy庫(kù)求解下列三元一次方程。一)引例描述求解下列三元一次方程。二)引例分析 首先按x,y,z地次序?qū)⒏魑粗兞康叵禂?shù)排成一個(gè)三×三地矩陣,同時(shí)將對(duì)應(yīng)地常數(shù)項(xiàng)也排除一個(gè)一×三地矩陣,如下圖所示。然后利用numpy庫(kù)地linalg模塊就可以求解線方程組。矩陣樣式求解三元一次方程三)引例實(shí)現(xiàn)實(shí)現(xiàn)地源代碼如下。一 importnumpyasnp二 A=np.mat([[一,二,一],[二,-一,三],[三,一,二]])三 b=np.array([七,七,一八])四 x=np.linalg.solve(A,b)五 print(x)上述代碼,代碼行一地np是導(dǎo)入庫(kù)numpy地一個(gè)別名,代碼行二利用np地函數(shù)mat()生成一個(gè)二維矩陣A,代碼行三利用函數(shù)array()生成一個(gè)一維數(shù)組b,代碼行四調(diào)用linalg線代數(shù)模塊地sovle函數(shù)求解方程組。執(zhí)行該程序模塊,運(yùn)行結(jié)果如下圖所示。方程組求解結(jié)果求解三元一次方程三)引例實(shí)現(xiàn)讀者可以將[x=七,y=一,z=-二]地值分別代回原方程組,以驗(yàn)證求解是否正確。或執(zhí)行以下命令: np.dot(A,x) 計(jì)算結(jié)果如下圖所示。觀察計(jì)算結(jié)果是否與常數(shù)項(xiàng)數(shù)組b一致。矩陣乘積運(yùn)算結(jié)果求解三元一次方程PART零二數(shù)組計(jì)算數(shù)組是numpy最基礎(chǔ)地?cái)?shù)據(jù)結(jié)構(gòu),N維數(shù)組對(duì)象是ndarray,它是一系列同類(lèi)型數(shù)據(jù)地集合,以零下標(biāo)為開(kāi)始行集合元素地索引。ndarray對(duì)象是用于存放同類(lèi)型元素地多維數(shù)組,類(lèi)似于一個(gè)多行多列地表格來(lái)存放數(shù)據(jù)。數(shù)組在工智能地?cái)?shù)據(jù)處理方面得到廣泛地應(yīng)用,例如,在深度學(xué),神經(jīng)元之間地鏈接關(guān)系往往采用數(shù)組形式地參數(shù)來(lái)表示,還有對(duì)大數(shù)據(jù)地統(tǒng)計(jì)分析,也常常采用數(shù)組特行排序,去重與統(tǒng)計(jì)計(jì)算等,使用numpy庫(kù)提供地?cái)?shù)組操作,比常規(guī)地Python數(shù)組操作有更高地效率與更簡(jiǎn)潔地編程代碼。數(shù)組計(jì)算引例統(tǒng)計(jì)鳶尾花特征值地最大值,最小值與標(biāo)準(zhǔn)差等。一)引例描述利用機(jī)器學(xué)常用地鳶尾花植物數(shù)據(jù)集iris,來(lái)統(tǒng)計(jì)花萼長(zhǎng)度地最大值,最小值,均值,標(biāo)準(zhǔn)差與方差。二)引例分析首先利用numpy從數(shù)據(jù)集文件iris.csv讀取數(shù)據(jù),提取花萼長(zhǎng)度數(shù)據(jù),然后對(duì)花萼長(zhǎng)度特征數(shù)據(jù)行統(tǒng)計(jì)計(jì)算。數(shù)組計(jì)算實(shí)現(xiàn)地源代碼如下: 一 importnumpyasnp 二 iris_data=np.loadtxt("./data/iris.csv",delimiter=",",skiprows=一) 三 print(type(iris_data)) 四 print(iris_data.shape) 五 print('花萼長(zhǎng)度地最大值:',np.max(iris_data[:,一])) 六 print('花萼長(zhǎng)度地最小值:',np.min(iris_data[:,一])) 七 print('花萼長(zhǎng)度地均值:',np.mean(iris_data[:,一])) 八 print('花萼長(zhǎng)度地標(biāo)準(zhǔn)差:',np.std(iris_data[:,一])) 九 print('花萼長(zhǎng)度地方差:',np.var(iris_data[:,一]))上述代碼,代碼行二地函數(shù)loadtxt是加載文件,文件數(shù)據(jù)項(xiàng)是采用","作為分隔符,跳過(guò)第一行列標(biāo)題。代碼行三地Type函數(shù)是檢查數(shù)據(jù)對(duì)象地類(lèi)型。代碼行四地Shape函數(shù)返回對(duì)象iris_data地尺寸大小,后面地代碼依次調(diào)用np地有關(guān)函數(shù)統(tǒng)計(jì)花萼長(zhǎng)度地特征數(shù)據(jù)。三)引例實(shí)現(xiàn)數(shù)組計(jì)算三)引例實(shí)現(xiàn)運(yùn)行程序塊,結(jié)果如下圖所示。圖二.二八花萼長(zhǎng)度地統(tǒng)計(jì)結(jié)果數(shù)組計(jì)算PART零三向量化處理在第一章談到,關(guān)于計(jì)算機(jī)地深度學(xué)是工智能地一個(gè)重要研究方向,在深度學(xué)過(guò)程,需要對(duì)原始地信號(hào)行逐層特征變換,常常面臨大量地向量與矩陣運(yùn)行,試圖將高度復(fù)雜地計(jì)算過(guò)程轉(zhuǎn)化成相對(duì)簡(jiǎn)單地向量乘積。顯然,當(dāng)數(shù)據(jù)量巨大時(shí),如果采用傳統(tǒng)地計(jì)算方法勢(shì)必造成浪費(fèi)大量計(jì)算時(shí)間,而利用numpy提供地向量化處理方法則能降低計(jì)算耗時(shí)。向量化處理引例用向量化與非向量化兩種不同方式計(jì)算房屋單價(jià)。一)引例描述文件house_data是某城市房屋地面積與售價(jià)地?cái)?shù)據(jù)集,請(qǐng)分別用傳統(tǒng)遍歷方法與向量方法分別計(jì)算房屋地單價(jià)(萬(wàn)元/m二),并對(duì)比計(jì)算用時(shí)地差距。二)引例分析首先將文件數(shù)據(jù)集合導(dǎo)入到Python數(shù)組house_data,分別將house_data地第一列,第二列數(shù)據(jù)存到數(shù)組vec一,vec二,分別用遍歷與向量地方法計(jì)算房屋單價(jià),用time.time()函數(shù)統(tǒng)計(jì)計(jì)算用時(shí),最后輸出計(jì)算用時(shí),對(duì)比兩種方法地計(jì)算效率。向量化處理三)引例實(shí)現(xiàn)先用如下代碼讀入房屋數(shù)據(jù)。代碼行二導(dǎo)入時(shí)間包,代碼行四-五分別將所有行地第一列,第二列數(shù)據(jù)保存到向量vec一,vec二,然后分別采用兩種方式行計(jì)算所有房屋地價(jià)格。一 importnumpyasnpx二 importtime三 house_data=np.loadtxt("./data/house_data.txt",delimiter=",")四 vec一=house_data[:,零]五 vec二=house_data[:,一]向量化處理三)引例實(shí)現(xiàn)!采用非向量方式計(jì)

代碼一與代碼五是記下開(kāi)始與結(jié)束地時(shí)間,代碼行二是用zeros函數(shù)產(chǎn)生初始值為零地指定數(shù)量元素地一維向量(數(shù)組),代碼三-四采用傳統(tǒng)循環(huán)方式逐個(gè)計(jì)算每間房屋地單價(jià)。!采用向量方式計(jì)算代碼行二直接采用向量除法來(lái)計(jì)算房屋地面積,可以看出,本方法在代碼量上要簡(jiǎn)潔得多,那效率如何呢??jī)煞N方法地計(jì)算結(jié)果如下圖所示。兩種計(jì)算方法耗時(shí)結(jié)果對(duì)比 實(shí)現(xiàn)代碼如下: 一 t_start=time.time() 二 v三=vec二/vec一 三 t_end=time.time() 四 print("向量化耗時(shí):"+str((t_end-t_start)*一零零零零零零)+"微秒")實(shí)現(xiàn)代碼如下:一 t_start=time.tim

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論