[Numpy-discussion] cummax
Charles R Harris
charlesr.harris at gmail.com
Wed Sep 23 11:07:37 EDT 2009
On Wed, Sep 23, 2009 at 8:34 AM, Nissim Karpenstein <nissimk at gmail.com>wrote:
> Hi,
>
> I want a cummax function where given an array inp it returns this:
>
> numpy.array([inp[:i].max() for i in xrange(1,len(inp)+1)]).
>
> Various python versions equivalent to the above are quite slow (though a
> single python loop is much faster than a python loop with a nested numpy C
> loop as shown above).
>
> I have numpy 1.3.0 source. It looks to me like I could add cummax function
> by simply adding PyArray_CumMax to multiarraymodule.c which would be the
> same as PyArray_Max except it would call PyArray_GenericAccumulateFunction
> instead of PyArray_GenericReduceFunction. Also add array_cummax to
> arraymethods.c.
>
> Is there interest in adding this function to numpy? If so, I will check
> out the latest code and try to check in these changes.
> If not, how can I write my own Python module in C that adds this UFunc and
> still gets to reuse the code in PyArray_GenericReduceFunction?
>
>
It's already available
In [5]: a = arange(10)
In [6]: a[5:] = 0
In [7]: maximum.accumulate(a)
Out[7]: array([0, 1, 2, 3, 4, 4, 4, 4, 4, 4])
PyArray_Max is there because it is an ndarray method.
Chuck
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20090923/0deb778c/attachment.html>
More information about the NumPy-Discussion
mailing list