首页 > 解决方案 > 如何找到 numpy 轴上的最终累积总和?

问题描述

我有一个 numpy 数组

np.array(data).shape 
(50,50)

现在,我想找到轴 = 1 的累积和。问题是 cumsum 创建了一个累积和数组,但我只关心每一行的最终值。

这当然是不正确的:

np.cumsum(data, axis=1)[-1]

有没有一种简洁的方法可以在不循环数组的情况下做到这一点。

标签: pythonnumpy

解决方案


您快到了,但正如您现在所拥有的那样,您只选择了最后一行。您需要的是从最后一列中选择所有行,因此您最后的索引应该是:[:,-1].

例子:

>>> a
array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14],
       [15, 16, 17, 18, 19],
       [20, 21, 22, 23, 24]])

>>> a.cumsum(axis=1)[:,-1]
array([ 10,  35,  60,  85, 110])

请注意,我将其保留,因为我认为它解释了您的尝试出了什么问题,但不可否认,在其他答案中有更有效的方法来做到这一点!


推荐阅读