numpy中axis

来源:互联网 发布:摇号软件 编辑:程序博客网 时间:2024/06/06 14:18

使用numpy中,经常遇到axis, 一直没有研究明白。今天终于明白点了

np.sum(arr, axis=2)

其中axis指的是arr中从左0开始的第二个下标。每个其它下标,遍历第二个下标求和。这样结果是,arr的第二个下标维度,消失。

自己随便生成几个array,由易到难,手动求一下就明白了。

>>> data = np.random.randint(0,3, [2,3,4])
>>> data
array([[[2, 1, 1, 2],
        [1, 0, 2, 0],
        [1, 1, 2, 1]],


       [[1, 0, 1, 1],
        [2, 2, 1, 1],

        [2, 0, 1, 1]]])

>>> data.sum(axis=0)
array([[3, 1, 2, 3],
       [3, 2, 3, 1],
       [3, 1, 3, 2]])
>>> data.sum(axis=0).shape
(3, 4)

求第零维和,就是第零维消失,变成3x4的矩阵,新的矩阵的每个值,是data矩阵遍历第0维,其它维不变。举例来说,先找到data[0][0][0]=2,第二,三维不变,data[1][0][0]=1, 这样,第0维消失,result[0][0]=data[0][0][0] +data[1][0][0];data[0][0][1] = 1, data[1][0][1] = 0, 所以result[0][1]= data[0][0][1] + data[1][0][1], 以此类推