对 p y t h o n 中 a x i s 的 理 解 对python中axis的理解 对python中axis的理解
axis的实际含义是根据axis指定的维度进行连接,如矩阵m1的维度为(2,3), 那么axis=0就代表了第一个维度‘2’,
因此,将m1和m2按照第一个维度进行连接,得到的新的矩阵就是将第一维度进行相加,其余维度不变,即维度变成了(4,3).
同理,axis=1时就是将矩阵的第二维度进行合并,其余维度不变,即维度变成了(2,6)。
axis的值也可以设置为负数,如axis=-1实际上就是指倒数第一个维度
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个数求平均