我有一个包含 +1000 个值的数组,想要在每对原始值之间插入值。
第一个原始值(位置)是:
15319.119338
14146.342576
12903.056916
11598.206258
10241.481549
8843.193623
7414.137528
5965.450224
4508.463615
3054.554941
1614.99659
200.807454
-1177.392125
-2509.519829
-3786.163305
-4998.702743
-6139.422399
-7201.60955
于是我想到了使用分段插值,但是我尝试过CubicSpline,结果与预期不一样:
15319.119338
14742.093346482558
14146.342576
13532.964581017442
12903.056916
12257.73756844767
11598.206258
10925.69478606688
10241.48154
9546.867049784812
8843.193623
8131.82110754387
7414.137528
6691.542050789708
5965.450224
5237.282631047298
15319.119338
15319.119338
15319.119338
15319.119338
15319.119338
对于所有剩余的值,它们保持相同的最后一个数字...... 我的代码是:
from scipy.interpolate import CubicSpline
cs_x = CubicSpline(times_in, positions)
output = cs_x(times_out)
我一定缺少一些东西,你能给我一些关于这个的见解吗?
您可以使用 PchipInterpolator 代替三次样条。我发现这个方法更接近Excel XY散点平滑图的平滑度。