scipy的splrep / splev for python interpolation返回nan

时间:2012-08-21 11:41:24

标签: python scipy nan

我有data set,第一列是x数据(wavelenght),第二列是y数据(相对强度)。

我希望将其插入另一个x_new - 数据,但我的问题是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)

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

1 个答案:

答案 0 :(得分:5)

您的x值可能包含重复项,使用s=...关键字参数进行splrep设置平滑因子,因为如果未设置,则样条曲线应该遍历每个点完全< / em>这是重复的不可能。

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