最近学习Numpy遇到axis,让我陷入深思(共两版-第1版)

主要参考讲解:原作者博客连接: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 数组对应元素的下标
000001
010011
020021
030031
100101
110111
120121
130131

其中,三个数字下标分别表示维、行、列。举例: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时,分别代表的是哪一个轴。就是沿此方向数字变化的方向

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

 

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

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值