如何快速理解numpy中的axis

numpy中的axis的设置参数与数组的shape有关

例如一个shape(3,2,4)的数组,代表一个三维数组,要注意的是这里的维度与物理学的维度的理解是不太一样的

axis = 0时,就相当于所求的数组的结果变成shape(2,4)

axis = 1时,数组的结果shape(3,4)

axis = 2时,数组的结果shape(3,2)

这里应该看出来了,当axis=n的时候shape中相应的索引就会被去除,数组发生了降维,那么是如何降维的呢

首先要清楚shape里的数字都代表什么意义

3代表这个numpy数组里嵌套着3个数组(有三层),  2代表其中每个数组的行数,3代表其中每个数组的列数

理解这个就很简单了.

假设有个数组arr1.shape(3,2,4)

arr1.sum(axis=0)那么首先得出来的结果肯定是个2行4列的数组,如何计算的呢?

asix=0就是去掉了shape(3,2,4)中的3,相当于不用去考虑数组的层级关系,直接看成一个整体

把每行和每列对应的元素相加即可,相当于其中一个数组的结果

arr1.sum(axis=1)得出的结果是个shape(3,4)

axis=1就相当于不用考虑每一行的,只考虑每一层和层中的每一列,一共有三层,每一层中的每一列相加即可

arr1.sum(axis=2),得出的结果是三层两列,不考虑列,只把每一层的每一行相加即可

二维数组就更简单了shape(3,4)这是一个三行四列的数组

sum(axis=0),不考虑行数,把列对应的数相加

最后总结下,axis=n ,就相当于不用考虑n所对应的意义,这个是针对于sum求和,如果是cumsum是不一样的,那个是累加shape保持不变
 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值