二次或三次1d插值没有大的内插器构建开销?

时间:2018-03-07 12:06:33

标签: python python-2.7 numpy scipy

我希望四维或立方体在1d中插入一系列浮点数(或向量),其中long可以是1E + 05或1E + 06(或更多)。出于某种原因,SciPi方便的interp1d()准备内插器的时间开销对于二次和三次样条曲线几乎都是n ^ 3。

我不一定需要样条插值器。我可以很容易地写一个(至少对于等间距数据)只使用最接近的3或4点来进行局部(分段)二次或三次插值,尽管它可能最终变得难看并且可能很慢。

但是我想知道这样的事情是否存在?生成比<{1}}的样条线更快?

使用scipy v.0.17.0和numpy v.1.13.0

time for interpolator

使用(我的想法)最近的Anaconda安装:scipy v.0.17.0和numpy v.1.11.0

time for interpolator

interp1d

1 个答案:

答案 0 :(得分:0)

  

出于某种原因,SciPi方便的interp1d()准备内插器的时间开销对于二次和三次样条曲线几乎都是n ^ 3。

根据answer

  

简短回答:更新你的scipy安装。

     

更长的答案:0.19之前,interp1d基于splmake,它使用带有完整矩阵的线性代数。在scipy 0.19中,它被重构为使用带状线性代数。结果,(下面是scipy 0.19.1)

你的问题的答案

  

二次或三次1d插值没有大的内插器构建开销?

仍然使用scipy.interp1d而不是你曾经使用的旧版scipy(在这种情况下我是)。一定要使用scipy 0.19或更新版本。 Fyi版本1.0已经发布,所以你(我)应该相应更新。