最近笔者在看代码的时候看到对多维数组的旋转操作np.rot90(m, 1, (0, 1))
,其中一个参数是axis轴,不太懂,于是查了很多资料,在这里写一下我自己的理解。
以三维数组为例,对于其形状可以描述成p×m×n,p表示第一维,m表示第二维,n表示第三维,例如np数组m = [[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]]
形状是2×2×3,第一维内容是两个二维数组[[1,2,3],[4,5,6]]
和[[7,8,9],[10,11,12]]
,第二维是四个一维数组[1,2,3]
,[4,5,6]]
,[[7,8,9]
,[10,11,12]
分别包含在两个二维数组中,而第三维则是12个数字,分别包含在四个一维数组中。
同样对于轴的理解也是从维度出发,按照对于数组的切片理解可以得出如下的图表示数组的轴:
m[0,:,:] =[[1,2,3],[4,5,6]]
,m[0,0,:]=[[1,2,3]]
, m[0,0,0]=0
以sort函数为例
这个示例是看到了这个作者写的文章,
有以下数组data
>>> data
array([[[4, 2, 0],
[0, 0, 4]],
[[2, 1, 1],
[1, 0, 2]],
[[3, 0, 4],
[0, 1, 3]]])
当用数轴来表示时,可看作如下图所示,从这张图出发就可以很清晰地看出是如何进行排序的:
>>> np.sort(data) ## 默认对最大的axis进行排序,这里即是axis=2
array([[[0,