[SciPy-Dev] replacing integrate.cumtrapz with numpy.trapz

Jonathan Stickel jjstickel at vcn.com
Sat Jul 17 09:52:53 EDT 2010


On 7/17/10 07:38 , Ralf Gommers wrote:
>
>
> On Sat, Jul 17, 2010 at 8:57 PM, Charles R Harris
> <charlesr.harris at gmail.com <mailto:charlesr.harris at gmail.com>> wrote:
>
>
>
>     On Sat, Jul 17, 2010 at 2:42 AM, Ralf Gommers
>     <ralf.gommers at googlemail.com <mailto:ralf.gommers at googlemail.com>>
>     wrote:
>
>         integrate.cumtrapz and numpy.trapz do exactly the same thing and
>         the code is very similar but not identical, as pointed out in
>         http://projects.scipy.org/scipy/ticket/720. Assuming numpy.trapz
>         is not going anywhere, can we replace the scipy version with it?
>
>         For a small bonus, the numpy version is about 10% faster (tested
>         for several array shapes):
>          >>> a = np.arange(1e4).reshape(500, 20)
>          >>> %timeit np.trapz(a, axis=1)
>         10000 loops, best of 3: 182 us per loop
>          >>> %timeit sp.integrate.cumtrapz(a, axis=1)
>         1000 loops, best of 3: 209 us per loop
>
>
>     Replacement seems reasonable to me. We should try to prune duplicate
>     functionality with numpy taking precedence.
>
> Just to double check, that also means deprecating the name cumtrapz right?
>

Uh, you do realize that trapz and cumtrapz provide different 
functionality, right?

In [5]: import scipy.integrate as igt

In [8]: a = np.arange(10)

In [9]: igt.cumtrapz(a)
Out[9]: array([  0.5,   2. ,   4.5,   8. ,  12.5,  18. ,  24.5,  32. , 
40.5])

In [10]: np.trapz(a)
Out[10]: 40.5

In [11]: igt.trapz(a)
Out[11]: 40.5

This is numpy-1.4.1 and scipy-0.7.2.

Jonathan



More information about the SciPy-Dev mailing list