ndarray
data1 = [6, 7.5, 8, 0, 1]
arr1 = np.array(data1) # 將list轉(zhuǎn)化為ndarray
np.zeros(10) # 創(chuàng)建0向量
np.ones((3, 6)) # 創(chuàng)建1向量,傳入?yún)?shù)是表示形狀的元組
np.ones_like(data1) # 根據(jù)data1的形狀創(chuàng)建1向量, zeros_loke同理
np.arrange(15) # range的numpy版本
np.eye(10) # 創(chuàng)建一個nxn單位陣,identity同理
arr1.astype(np.int64) # 將arr1轉(zhuǎn)換為int64類型的數(shù)組
arr2 = np.ones((10, 10, 10))
arr2[:, :, 3] # 取第三維為3的元素
arr2.ravel() # 降成1維數(shù)組
切片
# numpy的切片是原數(shù)組的視圖,不會復(fù)制
arr_silce = arr1[1:2] # 是引用
arr_copy = arr1[1:2].copy() # 調(diào)用copy()進行復(fù)制
arr3d = np.ones((5,5,5)) # 三維向量
arr3d[0][2] # 等價于arr2d[0, 2]
arr3d[0] = 42 # 將42賦值給所有對應(yīng)的位置
arr3d[:, 1:]
arr3d[1, :2] # 多維切片,用逗號隔開

2dslice.png
轉(zhuǎn)置
arr.T
arr.transpose()
# 轉(zhuǎn)置返回的是視圖,不是復(fù)制
arr = np.arange(16).reshape((2,2,4))
arr.transpose((1, 0, 2)) # 高維轉(zhuǎn)置需傳入軸編號
arr.swapaxes(1,2) # 轉(zhuǎn)置對應(yīng)軸
通用函數(shù)
ufunc,對ndarray執(zhí)行元素級運算的函數(shù)
arr = np.arange(10)
np.sqrt(arr)
np.exp(arr)
#np.where, if else
xarr = np.array([1.1, 1.2, 1.3, 1.4, 1.5])
yarr = np.array([2.1, 2.2, 2.3, 2.4, 2.5])
cond = np.array([True, False, True, True, False])
result = np.where(cond, xarr, yarr) # 根據(jù)cond條件選擇xarr或yarr
數(shù)學(xué)統(tǒng)計方法
arr = np.random.randn(5, 4) # 正態(tài)分布的數(shù)據(jù)
arr.mean(axis=1) # 等價于np.mean(axis=1), 求均值
arr.sum() # 求和,布爾型會轉(zhuǎn)換為0/1,可以用來計算True的個數(shù)
bools = np.array([True, False, False, True])
bools.any() # 是否有一個True
bools.all() # 是否都是True
arr.sort(1) # 就地排序,改變數(shù)據(jù)本身,傳入?yún)?shù)為軸
np.sort(arr) # 創(chuàng)建副本
names = np.array(['Bob', 'Joe', 'Will', 'Bob', 'Will', 'Joe', 'Joe'])
np.unique(names) # 唯一化, ['Bob', 'Joe', 'Will']
np.in1d(names, ['Bob', 'Joe']) # 判斷names的成員在不在第二個數(shù)組中,[True, True, False, True, False, True, True]

funclist1.png

funclist2.png

funclist3.png
文件存儲
數(shù)據(jù)默認以二進制方式存儲
arr = np.arange(10)
np.save('some_array', arr) # 會自動加后綴npy
np.load('some_array.npy')
np. savez(' array_archive. npz', a= arr, b= arr) # 將多個數(shù)組保存到一個文件中
arch = np.load('array_archive.npz')
arch['b'] # 使用key來獲取對應(yīng)數(shù)組
線性代數(shù)

funclist4.png
samples = np.random.normal(size=(4, 4)) # 生成標準4x4正態(tài)分布

funclist5.png

funclist6.png