scipy的splrep/splev for python interpolation返回nan

Dan*_*sen 4 python nan scipy

我有一个数据集,第一列是x数据(wavelenght),第二列是y数据(相对强度).

我希望将其插入到另一个x_new-data但我的问题是splrep返回值nan:

>>import numpy as np
>>from scipy.interpolate import splrep, splev
>>d = np.loadtxt("test.txt")
>>x,y = d[:,0],d[:,1]
>>
>>f = splrep( x,y,k=5 )
>>print f
>>(array([ 4501.19,  4501.19,  4501.19, ...,  7091.74,  7091.74,  7091.74]), array([ nan,  nan,  nan, ...,   0.,   0.,   0.]), 5)
Run Code Online (Sandbox Code Playgroud)

当我没有指定时也会发生这种情况k.有什么建议如何克服这个问题?

seb*_*erg 5

您的x值可能包含重复项,使用s=...splrep的关键字参数来设置平滑因子,因为如果未设置此样条曲线,则应该精确地遍历每个点,这对于重复项是不可能的.

它们可能不是重复,但也非常接近.