數學和統計方法
在這些方法中,布爾值中的 True
和 False
會被相應地轉換爲 1
和 0
參與計算
import numpy as np
arr = np.array([[np.NaN, 0, 1, 2, 3],
[ 4, 5, np.NaN, 6, 7],
[ 8, 9, 10, np.NaN, 11]])
arr
>>> array([[nan, 0., 1., 2., 3.],
[ 4., 5., nan, 6., 7.],
[ 8., 9., 10., nan, 11.]])
-
amin(a[, axis, out, keepdims])
-
返回數組的最小值或沿軸的最小值
-
-
amax(a[, axis, out, keepdims])
-
返回數組的最大值或沿軸的最大值
np.amin(arr)
>>> nan
np.amax(arr)
>>> nan
-
-
nanmin(a[, axis, out, keepdims])
-
返回數組的最小值或沿軸的最小值,忽略任何NAN
-
-
nanmax(a[, axis, out, keepdims])
-
返回數組的最大值或沿軸方向的最大值,忽略任何NAN
np.nanmax(arr) # 默認是計算flatten之後的數組,可以指定axis參數 0/1
>>> 11.0
np.nanmax(arr,0)
>>> array([ 8., 9., 10., 6., 11.])
np.nanmax(arr,1)
>>> array([ 3., 7., 11.])
np.nanmin(arr)
>>> 0.0
-
- median(a[, axis, out, overwrite_input, keepdims])
-
沿指定軸計算中值
np.median(arr)
>>> nan
np.median(arr, 0)
>>> array([nan, 5., nan, nan, 7.])
np.median(arr, 1)
>>> array([nan, nan, nan])
-
- nanmedian(a[, axis, out, overwrite_input, …])
-
在忽略NAS的情況下,沿指定的軸計算中值
np.nanmedian(arr) # 中位數
>>> 5.5
np.nanmedian(arr, 0)
>>> array([6. , 5. , 5.5, 4. , 7. ])
np.nanmedian(arr, 1)
>>> array([1.5, 5.5, 9.5])
-
- average(a[, axis, weights, returned])
-
計算沿指定軸的加權平均
arr1 = np.array([[2, 2, 2, 2, 2], [ 3, 3, 3, 3, 3], [ 4, 4, 4, 4, 4]]) np.average(arr, weights=arr1)
>>> nan
np.average(arr, weights=arr1 ,axis=0)
>>> array([ nan, 5.66666667, nan, nan, 7.88888889])
np.average(arr, weights=arr1 ,axis=1)
>>> array([nan, nan, nan])
-
- mean(a[, axis, dtype, out, keepdims])
-
沿指定的軸計算算術平均值
np.mean(arr) # 平均值
>>> nan
-
- nanmean(a[, axis, dtype, out, keepdims])
-
計算沿指定軸的算術平均值,忽略NAN
np.nanmean(arr) # 平均值
>>> 5.5
np.nanmean(arr,0)
>>> array([6. , 4.66666667, 5.5 , 4. , 7. ])
np.nanmean(arr,1)
>>> array([1.5, 5.5, 9.5])
-
- std(a[, axis, dtype, out, ddof, keepdims])
-
計算沿指定軸的標準偏差
np.std(arr) # 標準差
>>> nan
-
- nanstd(a[, axis, dtype, out, ddof, keepdims])
-
計算指定軸上的標準偏差,而忽略NAN
np.nanstd(arr) # 標準差
>>> 3.452052529534663
np.nanstd(arr, 0)
>>> array([2. , 3.68178701, 4.5 , 2. , 3.26598632])
np.nanstd(arr, 1)
>>> array([1.11803399, 1.11803399, 1.11803399])
-
-
var(a[, axis, dtype, out, ddof, keepdims])
-
計算沿指定軸的方差
np.var(arr) # 方差
>>> nan
-
-
nanvar(a[, axis, dtype, out, ddof, keepdims])
-
計算指定軸上的方差,同時忽略NAN
np.nanvar(arr) # 方差
>>> 11.916666666666666
-
布爾值 True
和 False
會被轉爲 1
和 0
參與計算
bool_arr = np.array([0.7, 0, 0.5, True, False, True, True, True, False, True])
bool_arr.sum()
>>> 6.2
arr2 = np.array([0.1, 0.2, 0.3, True, False])
np.amax(arr2)
np.amin(arr2)
>>> 1.0
>>> 0.0