NumPy科學(xué)計(jì)算
import numpy as np a = np.arange(9) a.dtype
a.shape #shape屬性返回一個(gè)元組(tuple)
np.array創(chuàng)建多維數(shù)組
m = np.array([np.arange(2),np.arange(2)])
arange創(chuàng)建數(shù)組,作為參數(shù)傳給array,創(chuàng)建了一個(gè)2x2的數(shù)組
創(chuàng)建一個(gè)3x3的多維數(shù)組
w = np.array([np.arange(3),np.arange(3),np.arange(3)])
步長2
a[3:7:2]
逆序
a[::-1]
b = np.arange(24).reshape(2,3,4) ? --2層,3行,4列
用:a來代替當(dāng)前所有值,b[:,0,0]代表所有樓層的第1行第1列,b[0,:,:]代表第一層所有房間
多個(gè)冒號(hào):可以用省略號(hào)...代替,b[0,:,:] == b[0,...]
raval函數(shù),將多列展平,只展示視圖view
flatten函數(shù),將多列展平,且保存結(jié)果
reshape跟在表達(dá)式后設(shè)置維度
transpose 轉(zhuǎn)置矩陣行轉(zhuǎn)列
resize 設(shè)置維度,會(huì)直接修改
組合數(shù)組
a = np.arange(9).reshape(3,3) b = 2*a a,b
水平組合
np.hstack((a,b)) #stack:組合 np.concatenate((a,b),axis = 1)
當(dāng)axis參數(shù)為0時(shí),表示沿著縱軸進(jìn)行計(jì)算。
當(dāng)axis參數(shù)為1時(shí),表示沿著橫軸進(jìn)行計(jì)算。
垂直組合
np.vstack((a,b)) np.concatenate((a,b), axis = 0)
淺拷貝:a is b
深拷貝:a.copy,a[1,2,3,4,5].copy
切片:a[::]
索引:a[]
1.cond = a >=120,a[cond]
2.布爾值其實(shí)就是1,0,快速找到目標(biāo)數(shù)據(jù)項(xiàng)可以使用連乘
形狀操作:
shape:初始形狀,幾維
reshape:改變形狀,改變維度
數(shù)組轉(zhuǎn)置:
a.T:行轉(zhuǎn)列,列轉(zhuǎn)行
三維數(shù)組及以上:a.transpose(b,(2,1,0)):默認(rèn)0,1,2 ?改變?yōu)?,1,0
切片:split(a,indices_or_sections=3) ,平均分成3份
廣播機(jī)制:兩個(gè)數(shù)組形狀不一致,通過擴(kuò)展數(shù)組的方式實(shí)現(xiàn)相加、相減、相乘等操作
arr1 = ?np.array([0,1,2,3]*3)
低維度數(shù)組復(fù)制相應(yīng)層數(shù)與高維數(shù)組進(jìn)行運(yùn)算
元素級(jí)方法:
abs:絕對(duì)值
sqrt:開根號(hào)
square:平方
exp:求e的n次冪
log:對(duì)數(shù)
pi:π
maximum(a,c):選取a和c里最大的那個(gè)值
minimum:選小的
any:有一個(gè)True就返回True
all:所有都True就返回True
inner:內(nèi)積,對(duì)應(yīng)位置積的和
clip:數(shù)據(jù)裁剪,clip(a,10,80),讓a數(shù)組小于10的值都變成10,大于80的值都變成80
ceil:向上取整
floor:向下取整