numpy.mean()传送门
numpy.mean(a, axis=None, dtype=None, out=None, keepdims=)
a:为array形的数据
axis:
科普下,axis=0表示纵轴的方向,axis=1表示横轴的方向
1)axis为二维array时:axis可为0,1两个方向轴
不填时默认为a全部元素的平均值
axis=0 表示纵轴平均,输出的是格式(1,x)的格式
axis=1表示横轴的平均,输出的是(x,1)的格式
2)axis为三维array时
axis可以为0,1,2表示三个方向轴,用tuple来表示取哪两个维度的数值作为平均,即对一个平面进行取平均
3)axis为n维array时
如果这是一个整数元组,则在多个轴上执行平均值,而不是像以前那样在单个轴或所有轴上执行。
可取n-1个轴
举例:
设a为(m,n)的array,则axis中0,1分别代表纵轴和横轴
>>> a = np.arange(15)
>>> a = a.reshape(3,5)
>>> a
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14]])
#取全部的平均值
>>> np.mean(a)
7.0
#取纵轴上的平均值
>>> np.mean(a,axis=0)
array([5., 6., 7., 8., 9.])
#取横轴上的平均值
>>> np.mean(a,axis=1)
array([ 2., 7., 12.])
设a为(m,n,k)的array,则axis中的0,1,2分别代表三个轴
若axis为(0,1),则相当于把m,n这两条轴压平(m,n轴上的m*n个数值求平均),输出格式为(1,k)的数值
#设a为(2,3,4)的array
>>> a = np.arange(24)
>>> a = a.reshape(2,3,4)
>>> a
array([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]],
[[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]]])
#对第二轴上的数字取平均,压缩成(2,4)输出了
>>> np.mean(a,axis=1)
array([[ 4., 5., 6., 7.],
[16., 17., 18., 19.]])
#将0,1轴方向的2*3个数值取平均
>>> np.mean(a,axis=(0,1))
array([10., 11., 12., 13.])
#将0,2轴方向的2*4个数值取平均
>>> np.mean(a,axis=(0,2))
array([ 7.5, 11.5, 15.5])
以上情况可以类比到n维,不再举例