python分析原理應(yīng)用 第2章_第1頁
python分析原理應(yīng)用 第2章_第2頁
python分析原理應(yīng)用 第2章_第3頁
python分析原理應(yīng)用 第2章_第4頁
python分析原理應(yīng)用 第2章_第5頁
已閱讀5頁,還剩32頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第2章numpy與數(shù)組運算經(jīng)濟管理學(xué)院大數(shù)據(jù)管理科學(xué)系主要內(nèi)容2.1數(shù)組基礎(chǔ)2.2數(shù)學(xué)計算2.3通用函數(shù)2.4矩陣運算2.5奇異分解2.1數(shù)組基礎(chǔ)

importnumpyasnp導(dǎo)入numpyarr1=np.array([1,2,3,4])#創(chuàng)建一維數(shù)組數(shù)組參數(shù):列表,元組等。元素類型:整型、字符型、布爾型、浮點型、復(fù)數(shù)型等。注意:若數(shù)值型與字符型混合,會全部轉(zhuǎn)換為字符串。2.1.1創(chuàng)建數(shù)組創(chuàng)建三維數(shù)組:arr2=np.array([[[100,98,99],[88,78,95]],[[98,97,99],[89,91,68]]])班組員工1月份合格率2月份合格率3月份合格率甲張三1009899李四887895乙王五989799趙六899168989799899168axis=0:縱深axis=1:垂直axis=2:水平[[[1009899][887895]][[989799][899168]]]arr2=np.array([[[100,98,96],[88,78,95]],[[98,97,99],[89,91,68]]])三維數(shù)組的形態(tài)1009896887895axis=1:水平axis=0:垂直班組員工1月份合格率2月份合格率3月份合格率甲張三1009896李四887895乙王五989799趙六899168三維數(shù)組的顯示二、三維數(shù)組的空間刻畫①arange([start,]stop[,step,],dtype=None)np.arange(0,1,0.1)np.arange(5,0,-1)②linspace(start(起始值),stop(結(jié)束值),num=50(樣本數(shù)),endpoint=True(包括結(jié)束值),retstep=False(返回數(shù)組里包含步長),dtype=None,axis=0):在指定的范圍內(nèi)返回均勻步長的樣本數(shù)組。步長計算公式(stop-start)/(num-1)(endpoint=True)np.linspace(0,4,5)③logspace(start,stop,num=50,endpoint=True,base=10.0,dtype=None,axis=0)np.logspace(0,2,20)2.1.2數(shù)組屬性a=np.array([[1,2,3,4],[4,5,6,7],[7,8,9,10]])維數(shù):a.ndim

#2

形狀:a.shape#(3,4)數(shù)據(jù)類型:a.dtype

#int32元素個數(shù):a.size#12每個元素的大小:a.itemsize#42.1.3數(shù)組方法t=np.arange(9)t.reshape(3,3)t.astype(float)2.1.4數(shù)組連接c1=np.array([[100,99,100],[98,99,97]])c2=np.array([[88,88,87],[85,92,89]])print(np.hstack((c1,c2)))#水平對接行一致print(np.vstack((c1,c2)))#垂直對接列一致,(c1,c2)元組形式2.1.5數(shù)組分割arr=np.arange(16).reshape(4,4)水平方向分割:np.hsplit(arr,2)

np.split(arr,2,axis=1)垂直方向分割:np.vsplit(arr,2)np.split(arr,2,axis=0)2.1.6數(shù)組索引arr=np.arange(1,20,2)arr[5]arr[:5])arr[3:5]arr[:-1])arr[5:1:-2]arr[[4,3,0,6]]arr[[-3,-5,-7]]2.1.7數(shù)組切片arr=np.array([[1,2,3,4,5],[4,5,6,7,8],[7,8,9,10,11]])arr[0,3:5]arr[1:,2:]arr[:,2]121315141617191820212322a=np.arange(24).reshape(2,3,4)array([[[0,1,2,3],[4,5,6,7],[8,9,10,11]],[[12,13,14,15],[16,17,18,19],[20,21,22,23]]])01324576891110print(a[1,0,0])#下標(biāo)1為第三維的第2行,中間0為第二維的第1行,最右邊0為第一維的第1列

print(a[1,1,1])修改值a[1,0,2]=-1print(a)三維數(shù)組的索引與切片axis=2:水平axis=1:垂直axis=0:縱深2.2數(shù)學(xué)計算2.2.1四則運算one=np.arange(1,5).reshape(2,2)one+=4(賦值運算生成新數(shù)組)two=np.arange(6,10).reshape(2,2)print(two/2)print(two//2)print(one-two)print(one*two)print(one/two)print(one%two)2.2.2復(fù)合運算one5=np.arange(9).reshape(3,3)p1=np.full((3,3),2)print(one5**p1)print(np.power(one5,p1))print(one5**2)print(np.square(one5))2.2.3數(shù)組排序a1=np.array([[100,0,45],[12,89,35],[50,40,60]])print(np.sort(a1,axis=1))#按行(默認(rèn))排序,不改變原數(shù)組a1.sort(axis=0)#該函數(shù)改變原數(shù)組順序2.3通用函數(shù)print(np.exp([1,2,3]))print(np.exp2([1,2]))print(np.log(10))print(np.log10(10))x=np.linspace(0,2*np.pi)y=np.sin(x)z=np.arcsin(y)xx=np.arange(4)print(np.sinh(xx))radian=[0,np.pi/6,np.pi/4]print(np.degrees(radian))degrees=[0,30,45,60,90,180]np.radians(degrees)/np.piprint(np.hypot(3,4))print(np.hypot([3,3,3],[4,4,4]))2.3.1初等函數(shù)2.3.2隨機函數(shù)np.random.rand(2,6)#產(chǎn)生2乘6的[0,1)隨機數(shù)組rn=np.random.randn(10)#產(chǎn)生10個標(biāo)準(zhǔn)狀態(tài)分布的隨機數(shù)np.round(rn,2)#保留兩位小數(shù)np.random.randint(4,size=8)#產(chǎn)生8個在[0,4)內(nèi)的隨機整數(shù)np.random.randint(0,4,size=(2,5))#產(chǎn)生(2,5)個在[0,4)的整數(shù)np.random.choice(5,3,replace=False,p=[0.4,0.2,0.1,0.2,0.1])#隨機抽樣np.random.shuffle(arr)#洗牌,原地操作2.3.3統(tǒng)計函數(shù)a=np.array([[10,0,9],[8,9,9],[9,10,9]])b=np.array([[np.nan,10,9],[np.NaN,10,9],[10,10,10]])np.sum(a,axis=1)np.nansum(b)np.max(a,axis=0)np.nanmax(b,axis=1)np.nanmin(b,axis=1)np.mean(a,axis=1)#均值

np.median(a,axis=0)np.var(a,axis=1)np.std(a,axis=1)np.average(a1,axis=1,weights=[0.8,0,0.2])#加權(quán)平均2.4.1求行列式importnumpyasnpd=np.array([[1,2],[3,4]])v1=np.linalg.det(d)np.around(v1,decimals=2)importnumpy.linalgasLAV2=LA.det(d)LA.det(np.random.randint(-5,6,size=(3,3,3)))#求三維矩陣行列式2.4矩陣運算①建立矩陣:matrix(data,dtype=None,copy=True)np.matrix(np.arange(9).reshape(3,3))np.matrix([[1,2,3],[4,5,6],[7,8,9]])np.matrix(((1,2),(3,4),(5,6)))2.4.2矩陣轉(zhuǎn)置

②矩陣轉(zhuǎn)置:A.Tx=np.arange(16).reshape(2,2,4)

np.transpose(x,(1,0,2))#移動軸

2.4.3求逆矩陣

特征值、特征向量:eig(a)

A=np.matrix([[3,1],[1,3]])w,v=np.linalg.eig(A)print('特征值',w)print('特征向量',v)2.4.4求特征根與特征向量

2.4.5解方程組①矩陣(數(shù)組)乘積函數(shù):dot(a,b)a=np.ones(8).reshape(2,4)b=np.array([[0,1],[0,2],[0,3],[0,4]])print(np.dot(a,b))②solve求線性方程組解:函數(shù)solve(A,b)

A=np.matrix([[1,-1,-1],[2,-1,-3],[3,2,-5]])b=[2,1,0]print(np.linalg.solve(A,b))

③求最小二乘解:函數(shù)lstsq(A,b)A=np.array([[3,1],[2,1],[1,1],[0,1]])b=np.array([-1,0.5,2,0.3])x=np.linalg.lstsq(A,b)x1,x2=np.linalg.lstsq(a,b,rcond=None)[0]print('x1=%.2f,x2=%.2f'%(x1,x2))回歸系數(shù)殘差平方和系數(shù)矩陣的秩系數(shù)矩陣的奇異值2.5奇異值分解奇異值分解(SingularValueDecomposition,SVD):函數(shù)svd(A,full_matrices=True,compute_uv=True)A(m,n)為二維或以上實數(shù)或復(fù)數(shù)數(shù)組,full_matrices確定返回矩陣u、vh的大小,默認(rèn)值True,則返回(m,m)和(n,n),F(xiàn)alse則返回(m,k)和(k,n),其中k=min(m,n)。計算結(jié)果返回左奇異向量U、奇異值σ、右奇異向量V矩陣。U大小為(m,m),σ大小為(k),V大小為(n,n)。2.5.1奇異值分解的計算(1)求ATA的特征值和特征向量計算對稱矩陣W=ATA求解特征方程,得到特征值

,并將特征值由大到小排列將特征值

代入特征方程求得對應(yīng)的特征向量.(2)求n階正交矩陣V將特征向量單位化,得到單位特征向量

,構(gòu)成n階正交矩陣V.(3)求

m

x

n

對角矩陣計算A的奇異值構(gòu)造

mx

n

矩形對角矩陣

,主對角線元素是奇異值,其余元素是零.(4)求m階正交矩陣U對A的前r個正奇異值,令得到求AT的零空間的一組標(biāo)準(zhǔn)正交基

并令(5)得到奇異值分解例:求下列矩陣的奇異值分解

importnumpyasnpA=np.array([[4,11,14],[8,7,-2]])u,s,vh=np.linalg.svd(A)print(u,s,vh)print(u.shape,s.shape,vh.shape)2.5.2圖像處理初步scikit-image是基

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論