[Numpy-discussion] reverse cumsum?

Joshua Holbrook josh.holbrook@gmail....
Tue Jul 6 17:54:19 CDT 2010


On Tue, Jul 6, 2010 at 2:23 PM, Alan G Isaac <aisaac@american.edu> wrote:
> On 7/6/2010 3:37 PM, Joshua Holbrook wrote:
>> In [10]: np.array(list(reversed(np.arange(10).cumsum())))
>> Out[10]: array([45, 36, 28, 21, 15, 10,  6,  3,  1,  0])
>>
>
>
> That might appear to match the subject line
> but does not match the OP's example output,
> which was [45, 45, 44, 42, 39, 35, 30, 24, 17,  9].
>
> You are giving the equivalent of x.cumsum()[::-1],
> while the OP asked for the equivalent of x[::-1].cumsum()[::-1].
>
> fwiw,
> Alan Isaac
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion@scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>

Oh snap. Good call--idk what I was thinking. Tired, I guess. :) In
that case, if you were going to use reversed() things would get a bit
nastier:

In [13]: np.array(list(reversed(np.array([9-i for i in xrange(10)]).cumsum())))
Out[13]: array([45, 45, 44, 42, 39, 35, 30, 24, 17,  9])

...which is gross enough that this approach is probably worth abandoning.

> I think Ken's suggestion may be the best so far...

I meant to say Alan's suggestion, i.e. x[::-1].cumsum()[::-1].


More information about the NumPy-Discussion mailing list