numpy数组计算中,经常要求按照某个轴计算,如axis=0/1.对于高维数组,究竟是在哪个维度上计算呢?其实axis中的0,1,2指的就是数组中数据块的层级关系。0就是最外层,指的是从最外层进入数组后的各个子数据块;1就是就是进入前面的各个子数据块后的更内层数据块。以如下二维数组为例,arr = np.array([[1,2,3], [6,5,4]]).
(1) 当axis=0时,从最外层进入数组内部,面对的时[1,2,3]和[6,5,4]两个子数据块,将两个数据块计算,
#求和
In [25]: arr.sum(axis=0)
Out[25]: array([7, 7, 7])
#也就是将[1,2,3]和[6,5,4]对应相加
#均值
In [26]: arr.mean(axis=0)
Out[26]: array([3.5, 3.5, 3.5])
(2) 当axis=1时,指的是[1,2,3]和[6,5,4]两个数据块,分别进入这两个数据块,并对其中的内容计算
#求和
In [27]: arr.sum(axis=1)
Out[27]: array([ 6, 15])
#对[1,2,3]数据块来说,是求1,2,3的和,为6;对[6,5,4]来说,是求6,5,4三个元素的和,为15.
#均值
In [28]: arr.mean(axis=1)
Out[28]: array([2., 5.])
更多精彩,关注公众号【小白的AI花园】!