ENH: add reverse to cumsum/cumprod/nancumsum/nancumprod #29712
+132
−16
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR implements a
reverse
keyword-only parameter for the following functions:numpy.cumsum
numpy.cumprod
numpy.nancumsum
numpy.nancumprod
When
reverse=True
, accumulation proceeds right-to-left along the specified axis.It is equivalent to:
but implemented using negative-stride views to avoid extra copies.
If
out
is provided, we accumulate into a flipped view of the output array.Rationale
numpy.cumsum
, etc.) and does not modifyndarray.cumsum
/cumprod
orufunc.accumulate
.If desired,
ufunc.accumulate(reverse=...)
can follow in a later PR.API Changes
reverse=False
(keyword-only).axis=None
,dtype=
, andout=
.Examples
Tests
axis=None
behaviordtype
overridesout
parameternancumsum
andnancumprod
All new tests pass locally.