Python3程序設(shè)計(jì)(第3版) 課件 第13章 科學(xué)計(jì)算與圖表繪制_第1頁(yè)
Python3程序設(shè)計(jì)(第3版) 課件 第13章 科學(xué)計(jì)算與圖表繪制_第2頁(yè)
Python3程序設(shè)計(jì)(第3版) 課件 第13章 科學(xué)計(jì)算與圖表繪制_第3頁(yè)
Python3程序設(shè)計(jì)(第3版) 課件 第13章 科學(xué)計(jì)算與圖表繪制_第4頁(yè)
Python3程序設(shè)計(jì)(第3版) 課件 第13章 科學(xué)計(jì)算與圖表繪制_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

numpy(numericalPython的簡(jiǎn)稱)是高性能科學(xué)計(jì)算和數(shù)據(jù)分析的基礎(chǔ)包,其中包含了大量工具,如數(shù)組對(duì)象(用來表示向量、矩陣、圖像等)及線性代數(shù)函數(shù)等。numpy中的數(shù)組對(duì)象可以實(shí)現(xiàn)數(shù)組中重要的操作,如矩陣乘積及轉(zhuǎn)置、解方程系統(tǒng)、向量乘積和歸一化,為圖像變形、圖像分類、圖像聚類等提供了基礎(chǔ)??茖W(xué)計(jì)算與圖表制作13.1用于科學(xué)計(jì)算的numpy庫(kù)34521ndarray是一個(gè)具有矢量算術(shù)運(yùn)算和復(fù)雜廣播能力的多維數(shù)組。具有對(duì)數(shù)組數(shù)據(jù)進(jìn)行快速運(yùn)算的標(biāo)準(zhǔn)數(shù)學(xué)函數(shù)。具有讀/寫外存數(shù)據(jù)的工具以及用于操作內(nèi)存映射文件的工具。具有線性代數(shù)、隨機(jī)數(shù)生成以及傅里葉變換功能。具有用于集成由C、C++等語言編寫的代碼工具。1.numpy數(shù)組的概念numpy庫(kù)中處理的基礎(chǔ)的數(shù)據(jù)類型是同種元素構(gòu)成的數(shù)組。numpy數(shù)組是一個(gè)多維數(shù)組對(duì)象,稱為ndarray。numpy數(shù)組的維數(shù)稱為秩,一維數(shù)組秩為1,二維數(shù)組秩為2。numpy中,每一個(gè)線性數(shù)組是一個(gè)軸,秩是描述軸的數(shù)量。numpy數(shù)組的下標(biāo)從0開始。同一個(gè)numpy數(shù)組中元素的類型相同。numpy數(shù)組的創(chuàng)建13.1.1科學(xué)計(jì)算與圖表制作13.1用于科學(xué)計(jì)算的numpy庫(kù)2.創(chuàng)建numpy數(shù)組(1)用array()函數(shù)將Python中的列表和元組創(chuàng)建成數(shù)組。(2)zeros()、ones()函數(shù)。(3)arange()、linspace()函數(shù)(4)numpy庫(kù)的基本函數(shù)。3.numpy中的數(shù)據(jù)類型(1)整型、浮點(diǎn)型、復(fù)數(shù)類型(2)bool、inti、int8、int32、int64、float16、float32、float64等。例13-1~13-3科學(xué)計(jì)算與圖表制作13.1用于科學(xué)計(jì)算的numpy庫(kù)numpy數(shù)組中的元素是通過下標(biāo)來訪問的,可以通過方括號(hào)括起一個(gè)下標(biāo)來訪問數(shù)組中的單一元素,也可以用切片的形式訪問數(shù)組中的多個(gè)元素。訪問numpy數(shù)組的元素13.1.2切片方法功能描述x[i]數(shù)組第i個(gè)元素x[-i]從后向前索引第i個(gè)元素x[n:m]切片,默認(rèn)步長(zhǎng)為1,從前向后索引,不包含mx[-m:-n]切片,默認(rèn)步長(zhǎng)為1,從后往前索引,不包含-nx[n:m:i]切片,指定步長(zhǎng)為i的由n到m的索引例13-4~13-5numpy數(shù)組的算術(shù)運(yùn)算包括:(1)numpy數(shù)組的四則運(yùn)算。(2)numpy數(shù)組的矩陣乘法。(3)numpy數(shù)組中+=、*=的應(yīng)用。(4numpy數(shù)組中元素的運(yùn)算。(5)指定axis參數(shù)計(jì)算numpy數(shù)組。numpy的ufunc函數(shù)和算術(shù)運(yùn)算13.1.3科學(xué)計(jì)算與圖表制作13.1用于科學(xué)計(jì)算的numpy庫(kù)ufunc函數(shù)也稱為通用函數(shù),是一種對(duì)數(shù)組的每個(gè)元素進(jìn)行運(yùn)算的函數(shù)。ufunc函數(shù)對(duì)數(shù)組進(jìn)行操作,以數(shù)組作為輸出。ufunc函數(shù)實(shí)現(xiàn)的運(yùn)算是針對(duì)的是數(shù)組中的每個(gè)元素,與使用循環(huán)相比,在運(yùn)算速度上更快、效率更高。常用的ufunc函數(shù)包括add()、subtract()、multiply()、divide()等。例13-6~13-11科學(xué)計(jì)算與圖表制作13.1用于科學(xué)計(jì)算的numpy庫(kù)數(shù)組的形狀(shape)取決于其每個(gè)軸上的元素個(gè)數(shù),可以使用reval()、reshape()、transpose()等函數(shù)修改數(shù)組的形狀。reval():降低數(shù)組的維度。reshape():改變數(shù)組維度。transpose():轉(zhuǎn)置數(shù)組。(1)numpy數(shù)組的形狀操作reshape()。(2)使用resize()函數(shù)改變數(shù)組形狀。numpy數(shù)組的形狀操作13.1.4>>>importnumpyasnp>>>nums0=64(50*np.random.rand(3,4))>>>print(nums0)>>>nums1=nums0.ravel()>>>print(nums1)>>>nums0.shape=(6,2)>>>print(nums0)>>>nums2=nums0.transpose()>>>print(nums2)>>>nums2.transpose()>>>id(nums2)#轉(zhuǎn)置數(shù)組,id值不發(fā)生改變例13-12~13-13科學(xué)計(jì)算與圖表制作13.1用于科學(xué)計(jì)算的numpy庫(kù)1.genfromtxt()函數(shù)genfromtxt()函數(shù)可以從文本文件中加載數(shù)據(jù)并將其轉(zhuǎn)換為numpy數(shù)組,通過不同的參數(shù)來處理不同格式的文本文件,包括分隔符、缺失值、數(shù)據(jù)類型等,語法格式如下。numpy.genfromtxt(fname,dtype=float,comments='#',delimiter=None,skip_header=0,skip_footer=0,skip_rows=0,usecols=None,encoding=None,filling_values=None,…)numpy庫(kù)的文件操作13.1.5fname是文件名字符串;dtype是生成數(shù)組的數(shù)據(jù)類型,默認(rèn)值為float;comments用作注釋的字符或字符序列;delimiter是字段分隔符,默認(rèn)用空格、制表符等做為分隔符,也可以用單個(gè)字符或字符序列做為分隔符。skip_header是要跳過的文件開頭的行數(shù);skip_footer是要跳過的文件末尾的行數(shù);skip_rows是要跳過的行數(shù)(從文件開頭)例13-14科學(xué)計(jì)算與圖表制作13.1用于科學(xué)計(jì)算的numpy庫(kù)2.loadtxt()函數(shù)和savetxt()函數(shù)numpy的loadtxt()函數(shù)的也用于讀取文件中的數(shù)據(jù)。loadtxt()函數(shù)的目標(biāo)是快速讀取簡(jiǎn)單、格式化的文件,要求目標(biāo)文件每一行具有相同數(shù)量的數(shù)據(jù)。numpy.loadtxt(fname,dtype=float,delimiter=None,comments='#',skip_rows=0,usecols=None,encoding=None,…)numpy庫(kù)的文件操作13.1.5numpy庫(kù)的savetxt()函數(shù)用于保存數(shù)組到文件。numpy.savetxt(fname,X,fmt='%.18e',delimiter='',newline='\n',header='',footer='',comments='#',encoding=None))matplotlib是Python的2D繪圖庫(kù),是一套面向?qū)ο蟮睦L圖庫(kù),使用它繪制的圖表中的每個(gè)繪圖元素都有一個(gè)對(duì)象與之對(duì)應(yīng)。matplotlib通過pyplot模塊提供了一套API,將眾多繪圖對(duì)象所構(gòu)成的復(fù)雜結(jié)構(gòu)隱藏在這套API內(nèi)部。用戶只需要調(diào)用pyplot模塊所提供的函數(shù)就可以實(shí)現(xiàn)快速繪圖,并設(shè)置圖表的各個(gè)細(xì)節(jié)。安裝matplotlib之前先要安裝numpy。matplotlib簡(jiǎn)介13.2.1科學(xué)計(jì)算與圖表制作13.2用于繪制圖表的matplotlib庫(kù)通常使用importmatplotlib.pyplotasplt語句導(dǎo)入庫(kù),使用plt作為matplotlib.pyplot模塊的別名。matplotlib.pyplot模塊中的函數(shù)13.2.2科學(xué)計(jì)算與圖表制作13.2用于繪制圖表的matplotlib庫(kù)1.繪制過程和主要函數(shù)(1)創(chuàng)建繪圖對(duì)象

figure(figsize=(width,height),dpi=n)(2)使用plot()函數(shù)繪圖

plot(x,y,c="r",ls="-.",linewidth=2.0)(3)設(shè)置繪圖對(duì)象的各個(gè)屬性xlabel/ylabel:設(shè)置x,y軸標(biāo)題文字。

title:設(shè)置圖的標(biāo)題。

xlim/ylim:設(shè)置x,y軸顯示范圍。

legend():顯示圖例。(4)圖形的保存和輸出

savefig(“文件名”,dpi=n)

show()13.2.2科學(xué)計(jì)算與圖表制作13.2用于繪制圖表的matplotlib庫(kù)顏色參數(shù)和線形參數(shù)顏色參數(shù)(color,簡(jiǎn)寫為c)線形參數(shù)(linestyles,簡(jiǎn)寫為ls)藍(lán)色:’b’(bulue)實(shí)線:’-’綠色:’g’(green)虛線:’--’紅色:’r’(red)虛點(diǎn)線:’-.’黃色:’y’(yellow)點(diǎn):’.’黑色:’k’(black)白色:’w’(white)讀取

和顯示函數(shù)函數(shù)功能Plt.legend()在繪圖區(qū)域中放置圖例Plt.show()顯示創(chuàng)建的繪圖對(duì)象Plt.matshow()在窗口中顯示數(shù)組矩陣Plt.imshow()在axes上顯示圖像Plt.imsave()保存數(shù)組為圖像文件Plt.imread()從圖像文件中讀取數(shù)組matplotlib.pyplot模塊中的函數(shù)13.2.2科學(xué)計(jì)算與圖表制作13.2用于繪制圖表的matplotlib庫(kù)2.在繪圖對(duì)象中繪制多個(gè)子圖可以使用subplot()函數(shù)快速繪制包含多個(gè)子圖的圖表:

subplot(numrows,numcols,plotNum)subplot()將整個(gè)繪圖區(qū)域等分為numrows行與numcols列個(gè)子區(qū)域,再按照從左到右,從上到下的順序?qū)γ總€(gè)子區(qū)域進(jìn)行編號(hào),左上角的子區(qū)域的編號(hào)為1。plotNum指定使用第幾個(gè)子區(qū)域。matplotlib.pyplot模塊中的函數(shù)13.2.2科學(xué)計(jì)算與圖表制作13.2用于繪制圖表的matplotlib庫(kù)3.繪制多副圖表4.在圖表中顯示中文matplotlib的默認(rèn)配置文件中,使用的字體無法在圖表中正確顯示中文。#指定默認(rèn)字體plt.rcParams['font.family']='SimHei’plt.rcParams['font.sans-serif']='SimHei‘#用來正常顯示負(fù)值plt.rcParams['axes.unicode_minus']=Falsematplotlib.pyplot模塊中的函數(shù)例13-16繪制直方圖、條形圖、餅圖13.2.3科學(xué)計(jì)算與圖表制作13.2用于繪制圖表的matplotlib庫(kù)1.直方圖直方圖(histogram)是統(tǒng)計(jì)報(bào)告圖,由一系列高度不等的縱向條紋或線段表示數(shù)據(jù)分布情況。一般用橫軸表示數(shù)據(jù)類型,縱軸表示分布情況。直方圖的繪制通過pyplot.hist()函數(shù)實(shí)現(xiàn):plt.hist(x,bins=30,color='green',density=True)x:指定每個(gè)bin(箱子)分布在x軸的位置。bins:指定bin個(gè)數(shù),即條狀圖個(gè)數(shù)。density:值為True時(shí),本區(qū)間點(diǎn)在所有點(diǎn)中占的概率。color:指定顏色。例13-17繪制直方圖、條形圖、餅圖13.2.3科學(xué)計(jì)算與圖表制作13.2用于繪制圖表的matplotlib庫(kù)2.條形圖條形圖(bar)是用一個(gè)單位長(zhǎng)度表示一定的數(shù)量,根據(jù)數(shù)量的多少繪制長(zhǎng)短不同的線條,然后把這些線條按一定的順序排列起來。pyplot.bar()函數(shù)繪制豎直方向的條形圖。pyplot.barh()函數(shù)繪制水平方向的條形圖。例13-18~13-19繪制直方圖、條形圖、餅圖13.2.3科學(xué)計(jì)算與圖表制作13.2用于繪制圖表的matplotlib庫(kù)3.餅狀

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論