4

最初の列がデータ(波長)で、2番目の列がデータ(相対強度)であるデータセットがあります。xy

それを別の -data に補間したいのx_newですが、私の問題は -values を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。この問題を克服する方法について何か提案はありますか?

4

1 に答える 1

7

x値に重複が含まれている可能性があります。splrep のキーワード引数を使用して平滑化係数を設定します。これが設定されていない場合、スプラインは重複では不可能なすべてのポイントを正確s=...に通過することになっています。

それらは重複しているのではなく、非常に近いだけである可能性があります。

于 2012-08-21T11:58:15.850 に答える