python - 有没有办法用预定义数量的结来插值样条线?

问题描述 投票:0回答:2

我想做的基本上是翻译这个Matlab行:

slm = slmengine(x,y,'degree',1,'knots',numOfKnots,'plot','off');

到蟒蛇。

到目前为止,我发现 make_inter_spline 不能让我控制有多少个结,而 make_lsq_spline 可以让我提前计算结。

python scipy spline
2个回答
0
投票

您可以考虑使用 scipy.interpolate.LSQUnivariateSpline (至少在 1.8.1 中)。如文档中所述:

类 scipy.interpolate.LSQUnivariateSpline(x, y, t, w=无, bbox=[无, 无], k=3, ext=0, check_finite=False)

具有显式内部结的一维样条线。

将 k 次样条 y = spl(x) 拟合到提供的 x、y 数据。 t 指定样条线的内部结


0
投票

我发现这个名为

pwlf
的包可以解决问题,尽管与 SciPy 中的任何东西相比它非常慢。要使用它,你可以简单地做

spline = pwlf.PiecewiseLinFit(x, y)
spline.fitfast(num_of_knots)
y_hat = spline.predict(x)

这正是我正在寻找的。

© www.soinside.com 2019 - 2024. All rights reserved.