主要参考讲解:原作者博客连接:https://blog.csdn.net/xiongchengluo1129/article/details/79062991
主要从轴的变化方向讲解,axis=0、1、2时分别代表哪个轴。
拿简单的例子讲解:生成一个(2,4,2)的数组。
arr=np.arange(16).reshape(2,4,2)
arr
array([[[ 0, 1],
[ 2, 3],
[ 4, 5],
[ 6, 7]],
[[ 8, 9],
[10, 11],
[12, 13],
[14, 15]]])
第一步:标出各个元素的下标:
000 | 001 |
010 | 011 |
020 | 021 |
030 | 031 |
100 | 101 |
110 | 111 |
120 | 121 |
130 | 131 |
其中,三个数字下标分别表示维、行、列。举例:000代表三位数组的第0个二维矩阵,第0个二维矩阵第0行,第0个二维矩阵第0列;同理,依次可以写出另外3个一块数字的含义。
第二步:以求和为例,分别计算axis=0、1、2时的值进行分析,进而得出结论。
arr.sum(axis=0)
array([[ 8, 10],
[12, 14],
[16, 18],
[20, 22]])
arr.sum(axis=1)
array([[12, 16],
[44, 48]])
arr.sum(axis=2)
array([[ 1, 5, 9, 13],
[17, 21, 25, 29]])
从所得结果上可能不能直观的看出axis=0、1、2分别代表什么,接下来我们从下标变换的角度来谈:
axis=0,我们注意一下下标:
axis=0,我们看第一个下标变化,从0变到1,我们按此来进行操作(以例子为例,进行求和,就得到arr.sum(axis=0的结果))
arr.sum(axis=0)
array([[ 8, 10],
[12, 14],
[16, 18],
[20, 22]])
axis=1,我们注意一下下标:
axis=1,我们看第二个下标变化,从0→1→2→3,我们按此来进行操作(以例子为例,进行求和,就得到arr.sum(axis=1的结果))
arr.sum(axis=1)
array([[12, 16],
[44, 48]])
axis=2,我们注意一下下标:
axis=2,我们看第三个下标变化,从0→1,我们按此来进行操作(以例子为例,进行求和,就得到arr.sum(axis=2的结果))
arr.sum(axis=2)
array([[ 1, 5, 9, 13],
[17, 21, 25, 29]])
以上图很直观的可以看出axis=0、1、2时,分别代表的是哪一个轴。就是沿此方向数字变化的方向。
下面图片出自网址:下面图片来源:
三维的理解好了之后对于二维的就更容易理解,这里就不过多介绍了。