同樣,咱的計算機仍是得先擁有Python,而且安裝了Numpy庫。有疑問的話能夠看這裏呦~~~~html
下面開講:
NumPy的主要對象是齊次多維數組。它是一個元素表(一般是數字),而且都是相同類型,由正整數的元組索引。數組
其餘暫且略過,咱主要說一些能夠聽懂的而且有實際效用的。
dom
首先,咱們得建立有一個ndarry對象,簡單地介紹其中三種方法吧:ide
-
-
- data=[[1,2,3],[4,5,6]]
a=np.array(data)
-
-
- a=np.arange(15).reshape(3,5)
在這裏咱們就用第三個做爲例子接着往下講哈(我就不用再建立了哈哈)
ndarray對象的重要的屬性以下:函數
輸出ndarray的維度(軸數,也有人叫它等級,在Python世界中,維度的數量被稱爲等級),這裏的軸也叫座標軸。spa
這兩種寫法都是能夠的,親試如圖,下面的其餘函數也是同樣的。3d
例如,array([1,2,1])是一個等級爲1的數組,由於它具備一個座標軸,該軸的長度爲3。code
在上面的示例中,該數組的排名爲2(它是2維的)。第一維(軸)的長度爲3,第二維的長度爲5。orm
輸出數組的尺寸,即(n,m)。htm
數組元素的總數,即 n * m。
數組中元素的數據類型,可進行轉換。(這個通常默認float64 和 int32,大家能夠本身多試試)
數組中每一個元素的字節大小。(例子中則爲 int 32/8 = 4,至關於ndarray.dtype.itemsize)
該緩衝區包含數組的實際元素。(這個咱們通常不用,咱們都是用索引的QAQ)
還有好多,我就不一一截圖了,懶。。。。。。
- np.zeros(10) #長度爲10的0數組
- np.zeros((3,6)) #建立3行6列的0數組(注意有兩個括號)
- np.ones(5)
- np.ones((3,4))
- np.arange(10)
- np.eye(3) # 3*3單位矩陣
- np.identity(3) # 3*3單位矩陣
- np.zeros_like(a) #建立與a相同行、列的全0矩陣
- np.ones_like(a) #建立與a相同行、列的全1矩陣
索引和切片類
- a1=a[0:1] ##這個切片的大有學問了,寫的話大概得另起一篇了,有空再說
- a[0:1]=1 ##a變化後,a1的值也隨之變化
- a1[0:1]=2 #a1變化後,a的值也隨之變化
- a1=a[0:1].copy() #徹底拷貝,值變化不影響a (和上面對比一下你就清楚了)
計算類
- a*a #每一個元素平方(這個強!!!挺好用的。)
- a*5 #每一個元素乘以5
- a.mean() #數據均值
- a.sum() #數組和
- a.sum(axis=0) #按列求和
- a.sum(axis=1) #按行求和
- a.sort() #對a進行排序(這個也是好東西啊~~~)
- a.sort(1) #0按行排序,1按列排序
- np.sort(a,0) #a按行排序(自己不發生變化!!!!!!)
- x.dot(y) ##矩陣x與y相乘
- np.in1d(a,[2,3,6]) #value中的每個值是否在[2,3,6]中(若是是,該值返回true,不然返回false.)
- np.in1d([2,3,6],a)
- np.in1d(x,y)
- np.intersect1d(x,y) #返回x和y中的交集,並返回有序結構
- np.union1d(x,y) #計算x,y的並集,並返回有序結構
- np.setdiff1d(x,y) #集合的差,即在x中且不在y中
- samples=np.random.normal(size=(4,4)) #產生4維正態分佈矩陣
- from numpy.linalg import * #計算與矩陣相關,行列式,矩陣的逆等
- np.linalg.det(samples) #矩陣行列式
- np.linalg.inv(samples) #矩陣求逆
- np.diag(samples) #返回矩陣對角線元素
- np.linalg.eig(samples) #返回矩陣特徵值和特徵向量
- np.save('some_a',a) #保存文件
- np.load("some_a.py") #讀取磁盤保存數據
- a=np.loadtxt("code_public.txt",delimiter=',') #讀取文本數據
- arr=np.loadtxt("d:\code\arr.txt",delimiter=',') #讀取d盤數據
行吧,時間也差很少了,我都寫累了,相信你也看累了,是時候去 stzb 看看了。