Numpy 常用函数和属性(二)

2019-08-14 16:12:03 浏览数 (1)

numpy的统计函数:

sum(a, axis = None) : 依给定轴axis计算数组a相关元素之和,axis为整数或者元组

代码语言:javascript复制
>>> np.sum([0.5, 1.5])
2.0
>>> np.sum([0.5, 0.7, 0.2, 1.5], dtype=np.int32)
1
>>> np.sum([[0, 1], [0, 5]])
6
>>> np.sum([[0, 1], [0, 5]], axis=0)
array([0, 6])
>>> np.sum([[0, 1], [0, 5]], axis=1)
array([1, 5])
>>> np.sum([10], initial=5)  #可指定初始值
15

mean(a, axis = None) : 同理,计算平均值

代码语言:javascript复制
>>> a = np.array([[1, 2], [3, 4]])
>>> np.mean(a)
2.5
>>> np.mean(a, axis=0)
array([ 2.,  3.])
>>> np.mean(a, axis=1)
array([ 1.5,  3.5])

average(a, axis =None, weights=None) : 依给定轴axis计算数组a相关元素的加权平均值

代码语言:javascript复制
>>> data = np.arange(6).reshape((3,2))
>>> data
array([[0, 1],
       [2, 3],
       [4, 5]])
>>> np.average(data, axis=0, weights=[1./4, 3./4, 1/2])
array([2.33333333, 3.33333333])
>>> np.average(data, axis=1, weights=[1./4, 3./4])
array([0.75, 2.75, 4.75])

std(a, axis = None) :同理,计算标准差

代码语言:javascript复制
>>> a = np.array([[1, 2], [3, 4]])
>>> np.std(a)
1.1180339887498949
>>> np.std(a, axis=0)
array([ 1.,  1.])
>>> np.std(a, axis=1)
array([ 0.5,  0.5])

var(a, axis = None): 计算方差 #var = mean(abs(x - x.mean())**2)

代码语言:javascript复制
>>> a = np.array([[1, 2], [3, 4]])
>>> np.var(a)
1.25
>>> np.var(a, axis=0)
array([ 1.,  1.])
>>> np.var(a, axis=1)
array([ 0.25,  0.25])

ptp(a, axis=None) : 计算数组a最大值和最小值的差

代码语言:javascript复制
>>> x = np.arange(4).reshape((2,2))
>>> np.ptp(x)
3
>>> np.ptp(x, axis=0)
array([2, 2])

median(a, axis=None) : 计算数组a中元素的中位数

代码语言:javascript复制
>>> a = np.array([[10, 7, 4], [3, 2, 1]])
>>> a
array([[10,  7,  4],
       [ 3,  2,  1]])
>>> np.median(a)
3.5
>>> np.median(a, axis=0)
    array([ 6.5,  4.5,  2.5])

argmin(a) 和 argmax(a) : 计算数组a的最小、最大值的下标(注:是一维的下标)

代码语言:javascript复制
>>> a = np.arange(6).reshape(2,3)
>>> a
array([[0, 1, 2],
       [3, 4, 5]])
>>> np.argmin(a)
0
>>> np.argmin(a, axis=0)
array([0, 0, 0])
>>> np.argmin(a, axis=1)
array([0, 0])
>>> np.argmax(a)
5
>>> np.argmax(a, axis=0)
array([1, 1, 1])
>>> np.argmax(a, axis=1)
array([2, 2])

注意,对于上述函数,除了可以使用np.function(a, axis=None) 的形式进行调用,还可以使用 a.function(axis=None)的形式,二者的结果是一样的。

0 人点赞