numpy 中的统计函数

np.amin() np.amax()

统计数组中的最大值,最小值

In [1]:
import numpy as np
In [2]:
a = np.arange(1,13).reshape(3,4)
print(a)
[[ 1  2  3  4]
 [ 5  6  7  8]
 [ 9 10 11 12]]
In [3]:
print(np.amin(a))          # 总体最小值 1
print(np.amin(a, axis=0))  # 每一列上的最小值
print(np.amin(a, axis=1))  # 每一行上的最小值
1
[1 2 3 4]
[1 5 9]

np.argmin(), np.argmax()

返回数组中最大值最小值的下标

In [4]:
b = np.array([(1,3,3,0), 
              (1,2,3,4),
              (4,3,2,1)] )
print(np.argmin(b))         # 全体最小值, 如果不加axis参数的话, 会把参数数组展开成一维
print(np.argmin(b, axis=0)) # 每一列上最小值的下标
print(np.argmin(b, axis=1)) # 每一行上最小值的下标
3
[0 1 2 0]
[3 0 3]

np.ptp()

计算数组中元素最大值与最小值的差

In [5]:
print(a, '\n')
print(np.ptp(a))           # 总体上 12 - 1 = 11
print(np.ptp(a, axis=0))   # 列方向上
print(np.ptp(a, axis=1))   # 行方向上
[[ 1  2  3  4]
 [ 5  6  7  8]
 [ 9 10 11 12]] 

11
[8 8 8 8]
[3 3 3]

np.median()

计算数组的中位数

In [6]:
a = np.array([[1,3,3,1], [4,5,6,10]])
print(a)
[[ 1  3  3  1]
 [ 4  5  6 10]]
In [7]:
print(np.median(a))          # 数组的中位数
print(np.median(a, axis=0))  # 每一列的中位数
print(np.median(a, axis=1))  # 每一行的中位数
3.5
[2.5 4.  4.5 5.5]
[2.  5.5]

np.mean()

计算平均值

In [8]:
print(np.mean(a), a.mean())
print(np.median(a, axis=0))  # 每一列的平均值
print(np.median(a, axis=1))  # 每一行的平均值
4.125 4.125
[2.5 4.  4.5 5.5]
[2.  5.5]

np.average()

计算数组的加权平均值 例如数组[1,2,3,4]各元素对于的权值为[4,3,2,1], 则其对应的加权平均值为:
加权平均值 = (1 x 4 + 2 x 3 + 3 x 2 + 4 x 1) / (4 + 3 + 2 + 1)

In [9]:
v = np.array([1,2,3,4])
w = np.array([4,3,2,1])
print(np.average(v))   # 不指定权值时, 相当于求平均值
print(np.average(v, weights=w))
2.5
2.0
In [10]:
v = np.arange(12).reshape(3,4)
print(v, '\n')
print(np.average(v, axis=1))   
print(np.average(v, weights=w, axis=1))  #计算每行上的加权平均值
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]] 

[1.5 5.5 9.5]
[1. 5. 9.]

np.std()

计算标准差

In [11]:
print(np.std(np.array([1,1,1,1])))
v = np.array([1,2,3,4])
print(np.std(v))
var = np.mean(((v - v.mean()) ** 2)) # 方差
print(var)
print(np.sqrt(var))
0.0
1.118033988749895
1.25
1.118033988749895

np.var()

计算方差

In [12]:
print(np.var(np.array([1,1,1,1])))
print(np.var(np.array([1,2,3,4])))
0.0
1.25