如何快速理解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保持不变
 

猜你喜欢

转载自blog.csdn.net/qq_35810838/article/details/84331456