我正在尝试使用SciPy UnivariateSpline来定位曲线上的一个点.不幸的是,我的结果是nan.
这是一个最小的例子:
from scipy.interpolate import UnivariateSpline
spline = UnivariateSpline([0.6, 0.4, 0.2, 0.0], [-0.3, -0.1, 0.1, 0.3], w=None, bbox=[None, None], k=1, s=0)
POINT = spline([0.15])
print POINT
Run Code Online (Sandbox Code Playgroud)
结果是[ NaN].我错过了
哪个功能UnivariateSpline?
我正在使用Python 2.6.6和scipy版本0.7.2
我不能保证我总是增加数据点,所以interp可能不会替代.
正如UnivariateSpline的文档字符串所述,值x必须增加.如果要使用UnivariateSpline,则必须对数据进行排序.像这样的事情:
In [71]: x = np.array([0.6, 0.4, 0.2, 0.0])
In [72]: y = np.array([-0.3, -0.1, 0.1, 0.3])
In [73]: order = np.argsort(x)
In [74]: spline = UnivariateSpline(x[order], y[order], w=None, bbox=[None, None], k=1, s=0)
In [75]: spline([0.15])
Out[75]: array([ 0.15])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2837 次 |
| 最近记录: |