我试图得到三次样条函数scipy.interpolate.interp1d的功能。 您试图使文档页示例正常工作,但每次运行时都发生以下错误: PLT.plot(x,y,' o ',xnew,f ) xnew ),'-',xnew,f2 ) ) xnew )。
'/library/python/2.7/site-packages/scipy-0.12.0.dev _ DDD 617 d _ 2012 09 20-py 2.7-ma cosx-10.8-x86
line 396,in call
y_new=self._call(x_new ) file '/library/python/2.7/site-packages/scipy-0.12.0.dev _ DDD 65292;
line 372,in _call_spline
result=spleval(self._spline,x_new.ravel ) )文件'/library/python/2.7/site-packages/scipy-0.110
line 835,in spleval
res[sl]=_fitpack._bspleval(xx,xj,cvals[sl],k,deriv )索引错误:多任务管理索引
因此,它适用于线性插值,但不适用于立方。 我可能犯了个愚蠢的错误,但我不知道出了什么问题。 以下是我使用的示例代码。 import numpy as np
from scipy.interpolateimportinterp 1d
x=NP.linspace (0,10,40 ) )。
y=NP.cos(-x**2/8.0 ) )。
f=interp1d(x,y ) ) ) )。
F2=interp1D(x,y,kind='cubic ' ) )。
xnew=NP.linspace (0,10,10 ) )。
import matplotlib.pyplot as plt
PLT.plot(x,y,' o ',xnew,f(xnew ),'-',xnew,F2 ),'-' )
PLT.legend(['data ',' linear ',' cubic'],loc='best ' )
plt.show () )