常用的统计函数
函数 | 说明 |
---|---|
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]]