https://zhuanlan.zhihu.com/p/61303877
用於numpy向量化運算
統計型
搜尋排序型
形狀型
https://numpy.org/doc/stable/reference/routines.statistics.html
找出陣列的和/最小值/最大值
array.sum() 亦可寫np.sum(a)或sum(a)
array.min()
array.max()
np.nanmax()
np.nanmin() 跳過nan之後找出最大/最小值,可以指定要比較的axis,以及回傳值是否要保留維度
比較兩個陣列,找出對應元素的最小/最大值
numpy.fmax()
numpy.fmin()
percentile() 百分位數
nanpercentile() 忽略nan求百分位數
傳入純量或是陣列的值 (介於0-100 之間),也可以指定要比較的軸,以及回傳值是否要保留維度
quantile() 分位數
nanquantile() 忽略nan求分位數
傳入純量或是陣列的值 (介於0-1之間),也可以指定要比較的軸,以及回傳值是否要保留維度
mean() 平均值(若有nan則回傳nan)
nanmean() 忽略nan求平均值
平均值:average() 平均值,可輸入權重weights
可以指定要計算平均數的軸,以及回傳值是否要保留維度。dtype參數是計算使用的型別,若輸入陣列是整數的話,則會用 float64 型別計算,若輸入的是浮點數的話,則是依輸入陣列的型別做為 dtype。
median() 中位數(偶數個數則會將中間相加除以2)
nanmedian() 忽略nan求中位數
可以指定要計算中位數的軸,以及回傳值是否要保留維度。
std() 標準差
nanstd() 忽略nan求標準差
var() 變異數
nanvar()忽略nan求變異數
可以指定要計算的軸,以及回傳值是否要保留維度。若是對於精度可能造成的誤差影響,可以改變 dtype 提高精度。
如果要計算樣本標準差/變異數的話,可將 ddof (自由度) 參數傳入 1,在計算平均方差 (mean squared deviation) 時分母就會以 N - ddof 做計算。
corrcoef() 相關係數
參數 rowvar 預設值為 True,代表將每一個 row 當做是一筆變數。
correlate() 兩個一維array的互相關 (Cross-correlation)
參數mode表示回傳的序列形狀:
valid max(M, N)
full (N+M- 1,)
same max(M, N) - min(M, N) + 1
cov() 共變異數
參數:
m 一維或二維陣列
y 額外資料,形狀須與 m 相同
rowvar 每一個 row 當做是一筆變數,預設值為 True
bias 樣本共變異數的話設為 False(預設值),母體設為True
ddof 自由度,預設值為None
fweights 頻率加權,預設值為None
aweights 觀測向量加權,預設值為None
numpy.histogram(a, bins=10, range=None, normed=None, weights=None, density=None) 畫出直方圖
參數:
a 輸入陣列
bins bins的定義,可傳入純量、序列、或是不同的方法(例如:auto)
range bins的範圍,預設是 a.min() 與 a.max() 之間,或是依照傳入的範圍
weights 權重值,陣列形狀須與 a 相同
density False:回傳各bin的count;True:回傳各bins的probability density
axis=0代表最外面的軸,axis=1則往內一個
例如2維array,0代表列,1代表行
np.sort(array, axis=-1, kind=None, …) 將array排序並輸出,但array本身不會變,可用變數接
https://numpy.org/devdocs/reference/generated/numpy.sort.html#numpy.sort
array.sort(axis=-1, kind=None, …) 將array排序但不會輸出,array本身改變
https://numpy.org/devdocs/reference/generated/numpy.ndarray.sort.html#numpy.ndarray.sort
axis:預設-1(最後一軸)為排序方向
kind:有四種排序算法可以選(quicksort, mergesort, heapsort, stable),預設為 quicksort
** 以上若要得到索引排序則將sort改成argsort
np.searchsorted(升冪array, 要放入的數或list) 輸出後者插入原array之後的索引位置,預設左邊數來第一個(若後者為array則為一個一個元素分別插入,回傳list)
np.argmax(array)
array.argmax 找出最大值的索引
np.argmin(array)
array.argmin 找出最小值的索引
參數axis預設為none,也可輸入表示各軸極值
where(a的條件式) 輸出a裡面符合條件的元素索引,若多維則索引依照各軸分開寫(tuple的形式將數個array包起來,例如[1,2,3],[4,5,6]代表[1,4][2,5][3,6])
https://numpy.org/doc/stable/reference/generated/numpy.where.html
np.nonzero(array)
array.nonzero 找出非0的索引,呈現方式同where()
array.flatten() 將array變成一維,並更動原值
array.ravel() 將array變成一維,不更動原值
預設皆以row的順序
https://numpy.org/doc/stable/reference/generated/numpy.ndarray.flatten.html
https://numpy.org/doc/stable/reference/generated/numpy.ravel.html
array.reshape(尺寸) 將array重塑但不更動原值(會輸出結果),形狀錯誤無法產出
array.resize(尺寸) 將array重塑且更動(不會輸出結果),形狀超過部分會補0
** 尺寸某些部分可用-1讓系統計算
np.concatenate((array1,array2…), axis=0…) 將陣列合併,預設由axis=0的方向,其他方向個數須相同
https://numpy.org/doc/stable/reference/generated/numpy.concatenate.html
np.stack((array1,array2…), axis=0…) 維度多1的合併,陣列尺寸都要一樣
np.hstack((array1,array2…)) 水平方向堆疊,維度不變
np.vstack((array1,array2…)) 鉛直方向堆疊,維度不變
https://blog.csdn.net/csdn15698845876/article/details/73380803
np.split((array1,array2…), 切割數或[切割區段]) 預設axis=0的方向切割
np.hsplit((array1,array2…), 切割數或[切割區段]) axis=1方向切割
np.vsplit((array1,array2…), 切割數或[切割區段]) axis=0方向切割
https://blog.csdn.net/miaoyanmm/article/details/80188994
資料科學馬拉松
python