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