【发布时间】:2017-09-18 11:04:50
【问题描述】:
我有两组数据点,set1和set2,每组都包含两列x和y值,就像那样(其中一个,另一个具有相似的结构和值)
x y
0.015 0.01
0.025 0.015
.. ..
0.115 0.07
所以我们有一个x 轴以0.01 的步长缩放,而y 是随机的。然后我有第三组,set3,看起来是这样的
x y
0.025 0.2
0.075 0.1
... ...
3.475 0.005
所以增量x 又是恒定的,在这种情况下等于0.05,而y 又是随机的。 set3 的x 的范围比set1 和set2 宽得多。
我的目标是在 x 中拥有三个跨越相同范围的集合。
为此,我考虑插入两个较短的集合,set1 和 set2,它们的 x 范围包含在 set3 的集合中。
我做到了(例如set1,类似set2),使用
import scipy.interpolate as itp
spline_set1 = itp.splrep(xvalues_set1, yvalues_set1)
extended_set1 = itp.splev(xvalues_set3, spline_set1)
但是extended_set1 的情节看起来好像不是要走的路。这些值太高了,比它们应该的值大了许多数量级。
有什么想法吗?
【问题讨论】:
-
我只是在我自己的数据上尝试了
splrep,老实说,我不太了解它的工作原理以及它产生的输出。对于样条插值,我总是使用scipy.interpolate.CubicSpline。这通常效果很好,你可以试一试。其次,我不了解您想要的输出。 set1 和 set2 的插值只会相应地缩小您的 x 值和 y 值之间的空间(即您填补空白)。但是,如果set3的范围更广,则set1和set2的插值不会对它们不包含的值有所帮助。你想要的结果是什么? -
@offeltoffel 谢谢,这确实是一个好点。事实上,我认为我正在寻找的是外推而不是插值。我想要的是在 set3 的相同 x 值范围内定义 set1 和 set2 的值。我认为应该通过外推来完成,因为 set1 和 set2 的 x 范围较小并且包含在 set3 的 x 范围内
标签: python interpolation extrapolation