numpy统计分布方法
-
最小值和最大值
min():获取整个数组中最小的值
max():获取整个数组中最大的值
axis参数:
- 如果没有axis参数则获取整个数组的最小值或最大值,返回的为一个值。
- 如果axis=0(1),则获取对应纵轴(横轴)方向的数组,即取出每一行(列)的最大值或最小值
# 不加参数 arr = np.array([[14,4,46,11],[11,44,33,22],[10,32,22,17]]) print(arr.max()) print(arr.min()) # 结果 46 4
# 加axis参数 print(arr.max(axis=0)) print(arr.min(axis=1)) # 结果 [14 44 46 22] [ 4 11 10]
-
最大值索引和最小值索引
argmax():将整个数组展平为一维数组后再获取最大值的索引
argmin():将整个数组展平为一维数组后再获取最小值的索引
# 最大值索引和最小值索引 print(arr.argmax()) print(arr.argmin()) # 结果 2 1
axis参数:如果没有axis参数则获取整个数组的最小值索引或最大值索引,返回的为一个值。
# axis参数演示 print(arr.argmax(axis=0)) print(arr.argmin(axis=1)) # 结果 [0 1 0 1] [2 1 1]
-
标准差与方差
arr.std() / arr.var()
方差和标准差可以反映数据的分布:当标准差与方差越大,表示数据越分散;当标准差与方差越小,数据越集中。
可加axis参数,用法与上述类似,这里不多做介绍。如果不加axis参数则表示对数组的每一个元素都进行计算。
标准差
print(f"标准差{arr.std()}") # 结果 13.164556792978468
方差
print(f"方差{arr.var()}") # 结果 173.30555555555554
-
求和与求均值
axis参数使用可参照上面知识点
sum() :求和
求和
print(arr.sum()) print(arr.sum(axis=0)) print(arr.sum(axis=1)) # 结果 266 [ 35 80 101 50] [ 75 110 81]
mean():求平均值
print(arr.mean()) print(arr.mean(axis=0)) print(arr.mean(axis=0)) # 结果 22.166666666666668 [11.66666667 26.66666667 33.66666667 16.66666667] [11.66666667 26.66666667 33.66666667 16.66666667]
-
累计求和
cumsum()
当没有axis参数时,将数组中的每个元素依次相加,然后将每一个相加后的值以一维数组的形式进行返回
axis的参数使用可参照以上知识点
print(arr5.cumsum()) print(arr5.cumsum(axis=0)) print(arr5.cumsum(axis=1)) # 结果 [ 14 18 64 75 86 130 163 185 195 227 249 266] [[ 14 4 46 11] [ 25 48 79 33] [ 35 80 101 50]] [[ 14 18 64 75] [ 11 55 88 110] [ 10 42 64 81]]
-
累计求积
cumprod()
当没有axis参数时,将数组中的每个元素依次相乘,然后将每一个相乘后的值以一维数组的形式进行返回
axis的参数使用可参照以上知识点
print(arr5.cumprod()) print(arr5.cumprod(axis=0)) print(arr5.cumprod(axis=1)) # 结果 [ 14 56 2576 28336 311696 13714624 452582592 9956817024 99568170240 3186181447680 70095991848960 1191631861432320] [[ 14 4 46 11] [ 154 176 1518 242] [ 1540 5632 33396 4114]] [[ 14 56 2576 28336] [ 11 484 15972 351384] [ 10 320 7040 119680]]