numpy的sum函数、mean函数

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Chaolei3/article/details/79268324

sum函数

sum函数主要为了求矩阵的行、或者列的和。其中用axis这个参数来指定对行还是列求和,当没有指定axis参数的时候,就会对矩阵所有元素求和。

import numpy as np
#生成一个2维矩阵
a = range(16)
a = np.array(a)
a = a.reshape(4,4)
#[[ 0  1  2  3]
# [ 4  5  6  7]
# [ 8  9 10 11]
# [12 13 14 15]]

#sum的第二个参数不指定的时候,求导所有元素的和
res = np.sum(a) #120

#axis =0
res_1 = np.sum(a,axis=0)
#打印结果
print res_1
#[24 28 32 36]

我们会发现当axis=0的时候,sum求的是每一列元素的和。

res_2 =np.sum(a,axis=1)
print res_2
#[ 6, 22, 38, 54]

当axis=1的时候,求的是每一行元素的和。

mean 函数

说到numpy的sum函数,就不得不说其中的mean函数。2者在axis这个参数的设置是一样的,axis=0就是求每列的均值,axis=1就是求每行的均值。
函数接口为
numpy.mean(a, axis=None, dtype=None, out=None, keepdims=False)
其中a是要求均值的矩阵;
axis指明沿哪个轴计算均值,还可以这么理解,axis是几,那就表明被axis指明的那个维度数值被压缩成1。
dtype指明算得均值结果之后的数据类型;
keepdims指明是否保持维度,具体来说,假如你有一个3*2的矩阵,你恰好要沿行计算(axis=1)均值,那么你应该得到3*1的均值矩阵。但是如果你不指定keepdims=True的话,其实结果是1*3的均值矩阵。

a = np.array([[1,2],[3,4],[5,6]])
#array([0.5, 2.5, 4.5])
me_1 = np.mean(a,axis=1)
#(3,)
me_1.shape

#array([[0.5],
#       [2.5],
#       [4.5]])
me_2 = np.mean(a,axis=1,keepdims=True)
#(3, 1)
me_2.shape
展开阅读全文

没有更多推荐了,返回首页