numpy库矩阵求最大值、最小值、平均值、方差标准差、中值、求和

最大值最小值

  • 获得整个矩阵、行或列的最大最小值。
    • 获得元素最大值的函数:max
    • 获得元素最小值的函数:min
import numpy as np
a = np.array([[1,2,3,3],[4,5,6,2],[0,8,4,9]])
print(a.max()) #获取整个矩阵的最大值 结果:9
print(a.min()) #获取整个矩阵的最小值 结果: 0
# 可以指定关键字参数axis来获得行最大(小)值或列最大(小)值
# axis=0 行方向最大(小)值,即获得每列的最大(小)值
# axis=1 列方向最大(小)值,即获得每行的最大(小)值
# 例如
print(a.max(axis=0)) #[4 8 6 9]
print(a.max(axis=1))#[3 6 9]
#返回的是位置(索引)
print(a.argmax(axis=0)) #[1 2 1 2]

平均值

  • 可以获得整个矩阵、行或列的平均值。
    • 获得矩阵中元素的平均值:mean()。
import numpy as np
a = np.array([[1,2,3,3],[4,5,6,2],[0,8,4,9]])
print(a.mean())  #3.9166666666666665
# 同样地,可以通过关键字axis参数指定沿哪个方向获取平均值
print(a.mean(axis=0)) # 结果 [1.66666667 5.         4.33333333 4.66666667]
print(a.mean(axis=1)) # 结果 [2.25 4.25 5.25]

方差

  • 函数为var()
  • 方差函数var()相当于函数mean(abs(x - x.mean())**2),其中x为矩阵。
import numpy as np

a = np.array([[1,2,3],[4,5,6]])
print(a.var()) # 结果 2.91666666667

print(a.var(axis=0)) # 结果 [ 2.25  2.25  2.25]
print(a.var(axis=1)) # 结果 [ 0.66666667  0.66666667]

标准差

  • 函数:std()
  • std()相当于sqrt(mean(abs(x - x.mean())**2)),或相当于sqrt(x.var())。
import numpy as np
a = np.array([[1,2,3,3],[4,5,6,2],[0,8,4,9]])

print(a.std()) # 结果2.5967394084804805
print(a.std(axis=0)) # 结果[1.69967317 2.44948974 1.24721913 3.09120617]
print(a.std(axis=1)) # 结果 [0.8291562  1.47901995 3.56195171]

中值

中值指的是将序列按大小顺序排列后,排在中间的那个值,如果有偶数个数,则是排在中间两个数的平均值。

  • 函数:median()
  • numpy.median(x,[axis]),axis可指定轴方向,默认axis=None,对所有数取中值。
import numpy as np
a = np.array([[1,2,3,3],[4,5,6,2],[0,8,4,9]])

print(np.median(a)) # 结果 3.5
print(np.median(a,axis=0)) # 结果[1. 5. 4. 3.]
print(np.median(a,axis=1)) # 结果[2.5 4.5 6. ]

求和 sum()

import numpy as np
a = np.array([[1,2,3,3],[4,5,6,2],[0,8,4,9]])

print(a.sum()) # 结果 47
print(a.sum(axis=0)) # 结果[ 5 15 13 14]
print(a.sum(axis=1)) # 结果[ 9 17 21]
  • cumsum()

如序列[1,2,3,4,5],其累计和为[1,3,6,10,15],即第一个元素为1,第二个元素为1+2=3,……,第五个元素为1+2+3+4+5=15。

import numpy as np
a = np.array([[1,2,3,3],[4,5,6,2],[0,8,4,9]])

print(a.cumsum()) 
print(a.cumsum(axis=0)) 
print(a.cumsum(axis=1)) 

# 结果
[ 1  3  6  9 13 18 24 26 26 34 38 47]
[[ 1  2  3  3]
 [ 5  7  9  5]
 [ 5 15 13 14]]
[[ 1  3  6  9]
 [ 4  9 15 17]
 [ 0  8 12 21]]

猜你喜欢

转载自blog.csdn.net/qq1195365047/article/details/88712837