最近,当我学习numpy和met axis时,我陷入了深思(共有两个版本-第一版),Numpy,遇到,让,两版,1

发表时间:2021-05-11

主要参考讲解:原作者博客连接: 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]]])

第一步:标出各个元素的下标:

arr 数组对应元素的下标
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时,分别代表的是哪一个轴。 就是沿此方向数字变化的方向

下面图片出自网址: 下面图片来源:

三维的理解好了之后对于二维的就更容易理解,这里就不过多介绍了。

文章来源互联网,如有侵权,请联系管理员删除。邮箱:417803890@qq.com / QQ:417803890

微配音

Python Free

邮箱:417803890@qq.com
QQ:417803890

皖ICP备19001818号-4
© 2019 copyright www.pythonf.cn - All rights reserved

微信扫一扫关注公众号:

联系方式

Python Free