[SciPy-User] scipy interpolate.interp1d spline slowness

josef.pktd@gmai... josef.pktd@gmai...
Wed Dec 12 16:25:00 CST 2012

On Wed, Dec 12, 2012 at 5:08 PM, Wolfgang Kerzendorf
<wkerzendorf@gmail.com> wrote:
> Hello Scipyers,
> I've just stumbled across a problem with interpolate.interp1d:
> -------------
> import numpy as np
> from scipy import interpolate
> x = arange(1000)
> y =  y = np.random.random_integers(0, 900, 1000)
> %timeit interp = interpolate.interp1d(x, y, kind='cubic')
> 1 loops, best of 3: 3.63 s per loop
> #the call for the interpolation is really quick afterwards (a couple ms)
> tck = interpolate.splrep(x, y, s=0)
> %timeit interpolate.splev(x_new, tck, der=0)
> 100 loops, best of 3: 5.51 ms per loop

It looks to me, you are timing two different things here, with
interp1d you time the spline creation with splev you time the

for "cubic", interp1d uses _fitpack._bspleval  so I wouldn't expect
much difference in timing.
But I didn't check whether there is a difference in what the wrappers are doing


> ------
> I do understand that these are different spline interpolations (but that's as far as my knowledge goes). I was just annoyed at the person saying: Ah, you see python is slow - which it is not as shown by the second scipy command.
> Would it be possible to switch the spline interpolator used in interpolate.interp1d to the B-Splines, or to give an option to switch between different spline interpolators (maybe with a warning: slow).
> Ah - a last question: Why don't you  use the issues tab on the github page?
> Thanks in advance,
>    Wolfgang
> _______________________________________________
> SciPy-User mailing list
> SciPy-User@scipy.org
> http://mail.scipy.org/mailman/listinfo/scipy-user

More information about the SciPy-User mailing list