日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python学习--numpy的数组

發(fā)布時間:2025/7/14 python 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python学习--numpy的数组 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

numpy中的數(shù)組類型為ndarry

創(chuàng)建

# -*- coding: utf-8 -*- import numpy as np#用列表或元組創(chuàng)建 a = np.array([[1,2,3],[4,5,6]]) b = np.array([1,2],dtype=complex)#類似內(nèi)置函數(shù)range c = np.arange(24).reshape(2,3,4)#等差,等比數(shù)組 d = np.linspace(0,1,10,endpoint=False) print np.logspace(0,4,3,base=2)#創(chuàng)建特殊數(shù)組 print np.zeros((2,3)) print np.zeros_like(a) print np.ones((2,3),dtype=np.int16) #全1 print np.empty((2,3)) print np.eye(3) #單位陣#從字符串,函數(shù),文件等創(chuàng)建 s ='abcdef' print np.fromstring(s,dtype=np.int8) print np.fromfunction(lambda i,j:(i+1)*(j+1), (9,9)) #fromfile從二進(jìn)制文件中創(chuàng)建,tofile寫入文件#從文件創(chuàng)建 np.savetxt('123.txt',a) #存為文本 e = np.loadtxt('123.txt')#文件操作還有savez,save,load np.save('c.npy', c) #存為二進(jìn)制,后綴不可變 c = np.load('c.npy') print cnp.savez('c.npz', c,d) #存儲多個數(shù)組 d = np.load('c.npz') print d['arr_0'], d['arr_1']c.tofile('c.bin') c = np.fromfile('c.bin',dtype=np.int32) #讀出來是一維的 print c#創(chuàng)建隨機(jī)數(shù)組 print np.random.random((2,3))#結(jié)構(gòu)體數(shù)組 persontype = np.dtype({'names':['name','age','weight'], 'formats':['S30','i','f']}, align=True) f = np.array([('zhang',32,75.5), ('wang',24,65.2)], dtype=persontype) print f print f['name'] print f[0]['age']

?

屬性

# -*- coding: utf-8 -*- import numpy as npa = np.array([[1,2,3],[4,5,6]])print a.ndim #維數(shù) print a.shape #(3,2) 每個維數(shù)的長度 print a.size #元素個數(shù) print a.dtype #float64,元素類型.所有類型可通過set(np.typeDict.values())查看 print a.itemsize #每個元素的字節(jié)數(shù) print a.data #緩沖區(qū)地址

使用

# -*- coding: utf-8 -*- import numpy as npa = np.array([[1,2,3],[4,5,6]])print a[1][2] index = (1,2) print a[index] print a[0:2,1] print a[:,[0,2]] #取第0和2列 print a[1] print a[...,1]for row in a:print row for element in a.flat:print elementb = a>4 a[b] = 0 print a

操作

# -*- coding: utf-8 -*- import numpy as npa = np.array([[1,2,3],[4,5,6]])#改變大小 a.ravel() #展平為1維數(shù)組 print a a.shape = (3,2) #元素在內(nèi)存中的位置并沒有改變 print a.reshape(2,-1) #a不動,返回改變形狀后的數(shù)組,-1對應(yīng)的維自動計算 a.resize((2,3)) print a#組合 b = np.floor(10*np.random.random((2,3))) print np.vstack((a,b)) print np.hstack((a,b)) #類似還有concatenate, r_, c_#分割 print np.hsplit(a,3)#復(fù)制 c = a #c跟a完全相同 print c is a c = a.view() #c跟a雖是不同數(shù)組,但c跟a公用數(shù)據(jù). c = a.copy() #深拷貝,c跟a完全不同 print a.repeat(3,axis=0)a = np.array([1,2,3,4,5]) b = np.array([2,4,7]) ax,bx = np.ix_(a,b) print ax.shape print ax*bx#產(chǎn)生能快速廣播的數(shù)組 x,y = np.ogrid[:1:4j, :1:3j] #和arange類似,三個產(chǎn)生是開始值,結(jié)束值,步長,步長為虛數(shù)表示長度 print x print y print 2*x + y x,y = np.mgrid[:1:4j, :1:3j] #與ogrid不同的是,它返回的是廣播后的數(shù)組 print x print y

?

運(yùn)算

# -*- coding: utf-8 -*- import numpy as npa = np.array([[4,3],[2,1]]) b = np.array([[1,1],[0,1]])#邏輯運(yùn)算 print np.logical_or(a==b, a<b) print np.any(a==b) print np.all(a>b)#對每個元素操作 print a<3 print a**2 print a*b a *= 3 np.add(a,b,a) print a#通用函數(shù) print np.exp(a) print np.sort(a) #對每行排序 ''' 當(dāng)使用ufunc函數(shù)對兩個數(shù)組進(jìn)行計算時,ufunc函數(shù)會對這兩個數(shù)組的對應(yīng)元素進(jìn)行計算,因此它要求這兩個數(shù)組的形狀相同。如果形狀不同,會進(jìn)行如下的廣播(broadcasting)處理: 1. 讓所有輸入數(shù)組都向其中維數(shù)最多的數(shù)組看齊,shape屬性中不足的部分都通過在前面加1補(bǔ)齊。 2. 輸出數(shù)組的shape屬性是輸入數(shù)組的shape屬性的各個軸上的最大值。 3. 如果輸入數(shù)組的某個軸的長度為1或與輸出數(shù)組的對應(yīng)軸的長度相同時,這個數(shù)組能夠用來計算,否則出錯。 4. 當(dāng)輸入數(shù)組的某個軸的長度為1時,沿著此軸運(yùn)算時都用此軸上的第一組值。 ''' #將a視為1維數(shù)組 print a.max() #a.func()等同于np.func(a) print a.argmin() print a.sum() #以下4個為統(tǒng)計函數(shù) print a.mean() print a.var() print a.std() print np.cov(a) #也可以對指定的維操作,例如 print a.sum(axis=0) print np.add.reduce(a,axis=1) print np.add.accumulate(a,axis=1) #于reduce不同的是它保留中間結(jié)果print np.inner(a,a) #計算兩個數(shù)組最后1維的內(nèi)積 print np.multiply.outer([1,2,3,4,5],[2,3,4]) #先使第一個參數(shù)的shape變?yōu)?5,1),再multiply,再執(zhí)行squeeze剔除長度為1的軸

?

線性代數(shù)

# -*- coding: utf-8 -*- import numpy as np import numpy.matliba = np.array([[1.,2.],[3.,4.]]) b = np.array([[1,1],[0,1]])print a.transpose() print np.trace(a) print a.trace() print np.linalg.det(a) print np.linalg.eig(a) #特征向量和特征值 print np.dot(a,b) #矩陣乘法 #解方程組 y = np.array([[5.],[7,]]) print np.linalg.solve(a,y) #linalg更多函數(shù)見http://docs.scipy.org/doc/numpy/reference/routines.linalg.html#矩陣類繼承自2維數(shù)組 A = np.mat(a) print A.T print A.I X = np.matrix('5 6; 7 8').T print A*X print A[:,1] #跟數(shù)組不一樣,這里切片的結(jié)果還是矩陣 print numpy.matlib.identity(3,dtype=int) #單位陣

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/saieuler/p/3366594.html

總結(jié)

以上是生活随笔為你收集整理的python学习--numpy的数组的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。