二次样条python

时间:2017-11-08 12:07:39

标签: python interpolation quadratic

在python中执行二次样条的最佳方法是什么?我使用interp1d,但这种方法不是我假装做的。

这是python代码的例子:

from scipy.interpolate import interp1d 

x = [5,6,7,8,9,10,11]
y = [2,9,6,3,4,20,6]

xx = [1,2,3,4,5,6,7,8,9,10,11,12] 
f = interp1d(x, y, kind='quadratic') 
yy = f(xx)

每次运行此代码时都会出现此错误:

  

ValueError:x_new中的值低于插值范围。

2 个答案:

答案 0 :(得分:0)

当您尝试从插值范围中获取一个点时,会发生该错误。例如,如果您只有5到11之间的数据,则只能在此范围内进行插值(否则我们将讨论外推)。然而,函数“scipy.interpolate.CubicSpline”会进行插值和外推,因此您可以获得超出范围的结果。

答案 1 :(得分:0)

尝试添加参数fill_value:

f= interp1d(x, y, kind='quadratic', fill_value='extrapolate')

xx的值:1、2、34和12超出了您提供的初始数据,因此必须构建样条线才能处理此问题。

相关问题