n u m p y 中 的 m e a n 和 s t d 中 a x i s 的 使 用 numpy中的mean和std中axis的使用 numpy中的mean和std中axis的使用
numpy中axis参数说明:
axis=i,即沿着数组第i个下标
的变化方向
进行操作。遍历完第i个下标所有的变化,求一次值。
axis=(i,j),即沿着数组第i和第j两个下标的
变化方向`进行操作。
a = np.array(
[
[
[[1, 2, 3, 3],
[3, 4, 3, 3]],
[[1, 2, 3, 3],
[3, 4, 3, 3]],
[[1, 2, 3, 3],
[3, 4, 3, 3]],
],
[
[[1, 2, 3, 3],
[3, 4, 3, 3]],
[[1, 2, 3, 3],
[3, 4, 3, 3]],
[[1, 2, 3, 3],
[3, 4, 3, 3]],
],
[
[[1, 2, 3, 3],
[3, 4, 3, 3]],
[[1, 2, 3, 3],
[3, 4, 3, 3]],
[[1, 2, 3, 3],
[3, 4, 3, 3]],
],
[
[[1, 2, 3, 3],
[3, 4, 3, 3]],
[[1, 2, 3, 3],
[3, 4, 3, 3]],
[[1, 2, 3, 3],
[3, 4, 3, 3]],
],
[
[[1, 2, 3, 3],
[3, 4, 3, 3]],
[[1, 2, 3, 3],
[3, 4, 3, 3]],
[[1, 2, 3, 3],
[3, 4, 3, 3]],
],
]
)
a.shape
a[x,y,w,z]
数组a有四个轴分别是x,y,w,z轴,这四个轴也分别叫第0轴、第1轴、第2轴和第3轴。
当axis=0,即沿着第0个轴x下标变化的方向进行求和,第0轴降维,得到的shape=(3,2,4)
print(a.sum(axis=0))
print(a.sum(axis=0).shape)
沿着第0个轴x下标变化的方向进行
a[0][0][0][0]+a[1][0][0][0]+a[2][0][0][0]+a[3][0][0][0]+a[4][0][0][0] = 1+1+1+1+1 = 5
a[0][0][0][0]+a[1][0][0][0]+a[2][0][0][0]+a[3][0][0][0]+a[4][0][0][0] = 1+1+1+1+1 = 5
a[0][0][0][1]+a[1][0][0][1]+a[2][0][0][1]+a[3][0][0][1]+a[4][0][0][1] = 2+2+2+2+2 = 10
a[0][0][0][2]+a[1][0][0][2]+a[2][0][0][2]+a[3][0][0][2]+a[4][0][0][2] = 3+3+3+3+3 = 15
...
当axis=1,即沿着第1个轴y下标变化的方向进行求和,第1轴降维,得到的shape=(5,2,4)
print(a.sum(axis=1))
print(a.sum(axis=1).shape)
当axis=2,即沿着第1个轴w下标变化的方向进行求和,第2轴降维,得到的shape=(5,3,4)
print(a.sum(axis=2))
print(a.sum(axis=2).shape)
当axis=3,即沿着第1个轴z下标变化的方向进行求和,第3轴降维,得到的shape=(5,3,2)
print(a.sum(axis=3))
print(a.sum(axis=3).shape)
当axis=(0, 2, 3),即沿着第0,2,3个轴x,w,z下标变化的方向进行求和,降维,得到的shape=(3),遍历完下标所有的变化,求一次值。
a[5,3,2,4]
a[300,3,32,32]
np.mean(a, axis=(0, 2, 3))
a[x][0][w][z]+a[x][0][w][z]+a[x][0][w][z]+a[x][0][w][z]+a[x][0][w][z] = 5*2*4个数求平均
a[x][1][w][z]+a[x][1][w][z]+a[x][1][w][z]+a[x][1][w][z]+a[x][1][w][z] = 5*2*4个数求平均
a[x][2][w][z]+a[x][0][w][z]+a[x][2][w][z]+a[x][2][w][z]+a[x][2][w][z]= 5*2*4个数求平均