常用的統計函數
函數 | 說明 |
---|---|
sum | 計算數組中的和 |
mean | 計算數組中的均值 |
var | 計算數組中的方差 |
std | 計算數組中的標準差 |
max | 計算數組中的最大值 |
min | 計算數組中的最小值 |
argmax | 返回數組中最大元素的索引 |
argmin | 返回數組中最小元素的索引 |
cumsum | 計算數組中所有元素的累計和 |
cumprod | 計算數組中所有元素的累計積 |
注意: 每個統計函數都可以按行和列來統計計算; 當 axis=1 時,表示沿着橫軸計算; 當 axis=0 時,表示沿着縱軸計算;
(1)sum() 計算數組中的和
import numpy as np
arr = np.arange(20).reshape(4,5)
print(arr)
# 結果:
# [[ 0 1 2 3 4]
# [ 5 6 7 8 9]
# [10 11 12 13 14]
# [15 16 17 18 19]]
print('求總和: ',np.sum(arr))
# 結果: 190
print('按行求和: ',np.sum(arr,axis=1))
# 結果: [10 35 60 85]
print('按列求和: ',np.sum(arr,axis=0))
# 結果: [30 34 38 42 46]
(2)mean() 計算數組中的均值
import numpy as np
arr = np.arange(20).reshape(4,5)
print(arr)
# 結果:
# [[ 0 1 2 3 4]
# [ 5 6 7 8 9]
# [10 11 12 13 14]
# [15 16 17 18 19]]
print('求總均值: ',np.mean(arr))
# 結果: 9.5
print('按行求均值: ',np.mean(arr,axis=1))
# 結果: [ 2. 7. 12. 17.]
print('按列求均值: ',np.mean(arr,axis=0))
# 結果: [ 7.5 8.5 9.5 10.5 11.5]
(3)var() 計算數組中的方差
import numpy as np
arr = np.arange(20).reshape(4,5)
print(arr)
# 結果:
# [[ 0 1 2 3 4]
# [ 5 6 7 8 9]
# [10 11 12 13 14]
# [15 16 17 18 19]]
print('求總方差: ',np.var(arr))
# 結果: 33.25
print('按行求方差: ',np.var(arr,axis=1))
# 結果: [ 2. 2. 2. 2.]
print('按列求方差: ',np.var(arr,axis=0))
# 結果: [ 31.25 31.25 31.25 31.25 31.25]
(4)std() 計算數組中的標準差
import numpy as np
arr = np.arange(20).reshape(4,5)
print(arr)
# 結果:
# [[ 0 1 2 3 4]
# [ 5 6 7 8 9]
# [10 11 12 13 14]
# [15 16 17 18 19]]
print('求總標準差: ',np.std(arr))
# 結果: 5.76628129734
print('按行求標準差: ',np.std(arr,axis=1))
# 結果: [ 1.41421356 1.41421356 1.41421356 1.41421356]
print('按列求標準差: ',np.std(arr,axis=0))
# 結果: [ 5.59016994 5.59016994 5.59016994 5.59016994 5.59016994]
(5)max() 計算數組中的最大值
import numpy as np
arr = np.arange(20).reshape(4,5)
print(arr)
# 結果:
# [[ 0 1 2 3 4]
# [ 5 6 7 8 9]
# [10 11 12 13 14]
# [15 16 17 18 19]]
print('求最大值: ',np.max(arr))
# 結果: 19
print('按行最大值: ',np.max(arr,axis=1))
# 結果: [ 4 9 14 19]
print('按列最大值: ',np.max(arr,axis=0))
# 結果: [15 16 17 18 19]
(6)min() 計算數組中的最小值
import numpy as np
arr = np.arange(20).reshape(4,5)
print(arr)
# 結果:
# [[ 0 1 2 3 4]
# [ 5 6 7 8 9]
# [10 11 12 13 14]
# [15 16 17 18 19]]
print('求最小值: ',np.min(arr))
# 結果: 0
print('按行最小值: ',np.min(arr,axis=1))
# 結果: [ 0 5 10 15]
print('按列最小值: ',np.min(arr,axis=0))
# 結果: [0 1 2 3 4]
(7)argmax() 返回數組中最大元素的索引
注意: 無論行列,索引都是從0開始算起的
import numpy as np
arr = np.arange(20).reshape(4,5)
print(arr)
# 結果:
# [[ 0 1 2 3 4]
# [ 5 6 7 8 9]
# [10 11 12 13 14]
# [15 16 17 18 19]]
print('求最大索引: ',np.argmax(arr))
# 結果: 19
print('按行最大索引: ',np.argmax(arr,axis=1))
# 結果: [4 4 4 4]
print('按列最大索引: ',np.argmax(arr,axis=0))
# 結果: [3 3 3 3 3]
(8)argmin() 返回數組中最小元素的索引
注意: 無論行列,索引都是從0開始算起的
import numpy as np
arr = np.arange(20).reshape(4,5)
print(arr)
# 結果:
# [[ 0 1 2 3 4]
# [ 5 6 7 8 9]
# [10 11 12 13 14]
# [15 16 17 18 19]]
print('求最小索引: ',np.argmin(arr))
# 結果: 0
print('按行最小索引: ',np.argmin(arr,axis=1))
# 結果: [0 0 0 0]
print('按列最小索引: ',np.argmin(arr,axis=0))
# 結果: [0 0 0 0 0]
(9)cumsum() 計算數組中所有元素的累計和
注意: 無論行列相加,每次相加一個值都會返回一個值
import numpy as np
arr = np.arange(20).reshape(4,5)
print(arr)
# 結果:
# [[ 0 1 2 3 4]
# [ 5 6 7 8 9]
# [10 11 12 13 14]
# [15 16 17 18 19]]
print('累計求和: ',np.cumsum(arr))
# 結果: [ 0 1 3 6 10 15 21 28 36 45 55 66 78 91 105 120 136 153 171 190]
print('按行累計求和: ',np.cumsum(arr,axis=1))
# 結果:
# [[ 0 1 3 6 10]
# [ 5 11 18 26 35]
# [10 21 33 46 60]
# [15 31 48 66 85]]
print('按列累計求和: ',np.cumsum(arr,axis=0))
# 結果:
# [[ 0 1 2 3 4]
# [ 5 7 9 11 13]
# [15 18 21 24 27]
# [30 34 38 42 46]]
(10)cumprod() 計算數組中所有元素的累計積
注意: 無論行列相加,每次相加一個值都會返回一個值
import numpy as np
arr = np.arange(1,10).reshape(3,3)
print(arr)
# 結果:
# [[1 2 3]
# [4 5 6]
# [7 8 9]]
print('累計積: ',np.cumprod(arr))
# 結果: [ 1 2 6 24 120 720 5040 40320 362880]
print('按行累計積: ',np.cumprod(arr,axis=1))
# 結果:
# [[ 1 2 6]
# [ 4 20 120]
# [ 7 56 504]]
print('按列累計積: ',np.cumprod(arr,axis=0))
# 結果:
# [[ 1 2 3]
# [ 4 10 18]
# [ 28 80 162]]