在Python中插值大量点

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

我有一个包含 +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

我的x值是这样的 times_in 是插值的时间数组,如 times_out

于是我想到了使用分段插值,但是我尝试过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)

我一定缺少一些东西,你能给我一些关于这个的见解吗?

python interpolation
1个回答
0
投票

您可以使用 PchipInterpolator 代替三次样条。我发现这个方法更接近Excel XY散点平滑图的平滑度。

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