[开发技巧]·Numpy中对axis的理解与应用
1.问题描述
在使用Numpy时我们经常要对Array进行操作,如果需要针对Array的某一个纬度进行操作时,就会用到axis参数。
一般的教程都是针对二维矩阵操作axis,当axis为0时,计算方向时列,当axis为1时计算方向为行。
但是这样的描述并不能让我们真正理解axis的含义。下面我一个三维Array,来带领大家深入理解axis
2.实战讲解
为什么是这个结果呢,笔者来帮大家说梳理一下:
首先我们新建了一个shape(2,3,3)的Array
1.用np.sum(arrays)时,计算的是所有元素的和。
2.用np.sum(arrays,axis = 0)时,我们可以这样理解,以最外面的[ ]为一个list,对里面两个元素(每个元素都是二维Array)进行相加求和,所以得到的Array和相加元素形状相同。
2.用np.sum(arrays,axis = 1)时,以中间的[ ]为一个list,对里面三个元素(每个元素都是一维Array)进行相加求和,所以得到的Array和相加元素形状相同,但是由于有两个中间的[ ],所以把两个拼接在了一起。
3.用np.sum(arrays,axis = 2)时,以最里面的[ ]为一个list,对里面两个元素(每个元素都是一个人说)进行相加求和,所以得到的Array和相加元素形状相同,但是由于有两个中间的[ ],每个中间的[ ]包含三个[ ],最终shape为(2,3)。
类似其实我们在使用下标选取内容时使用相同的概念
大家可以根据笔者上面讲述的,好好理解分析一下为什么是这样。
hope this helps