Numpy轴与统计函数

Author Avatar
Brian Lee 3月 18, 2018
  • 在其它设备中阅读本文章

开始学NumPy的时候,不太清除轴(axis)的定义,在document里也没找到axis的定义。故写此博客探讨Numpy库的轴,通过使用统计函数来理解轴。


定义

存储每个维度的数据

个人理解

轴,即数轴。例如对于一个三维平面,将其看做是多个二维平面层叠起来的,则$axis=0$ 表示全部平面上相对应的位置,$axis=1$ 表示平面的每一列,$axis=2$ 表示平面的每一行。

为方便理解,将其对应到三维坐标系中,$axis=0$ 代表Z轴,$axis=1$ 代表Y轴,$axis=2$ 代表X轴

三维坐标系


统计函数示例

建立一个 3*4*5 的三维数组

import numpy as np
a = np.arange(24).reshape(2, 3, 4)

此时 a 数组为:
array数组

分别求三个axis的和

a.sum(axis = 0)
a.sum(axis = 1)
a.sum(axis = 2)

结果为:
统计函数结果

分析结果

axis = 0

对于$axis=0$ ,即第一维,实际上是由两个3*4的二维数组构成,对其使用sum()函数,实际上是对这两个二维数组求和,也就是对两个二维数组上对应位置的元素求和,所以结果是一个3*4的二维数组。

例如,结果数组中的第一个值12便是由第一个二维数组的第一个元素0和第二个二维数组的第一个元素12相加得到。

axis = 1

对于$axis=1$ ,即第二维,实际上是由具有4个元素的一维数组构成,对其使用sum()函数,实际上是将各个一维数组相加。因为这6个一维数组位于两个3*4的二维数组中,所以求和结果是由两个一维数组(求到的和数组)组成的二维数组。

例如,结果数组中的第二个值15是由第一个二维数组中第一个一维数组的第二个位置的1、第一个二维数组中第二个一维数组的第二个位置的5和第一个二维数组中第三个一维数组的第二个位置的9相加得到。

axis = 2

对于$axis=2$ ,即第三维,实际上是由一个一位数组中的4个元素组成,对其使用sum()函数,实际上是将每个一维数组中的元素相加。因为共有6个一维数组分别位于2个二维数组中,所以最后结果是2*3的二维数组。

例如,结果数组中的第一个值6是由第一个一维数组中的4个元素0、1、2、3相加得到的。

总结

至此,通过NumPy中的sum()函数,分析了轴(axis)的运算,也对其的定义更清楚了。其余的统计函数的操作方式也是同样的。

本博客采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!
本文链接:http://brianleelxt.top/2018/03/18/numpy-axis/