numpy中的局部线性逼近

时间:2012-11-06 18:34:42

标签: python numpy interpolation

我有一些xy数据,其中x向量中的每个条目都有y向量中的相应条目。此外,x数据的间隔不均匀。

我希望在x个样本之间进行插值,以获得x维度中的偶数间距,并估算相应的y值。在 numpy 中,interp1d似乎是一个自然的解决方案,但我的问题有一个警告:x值不是单调增加的(因为x和{{ 1}}是时间的函数)。 y函数和插值模块中的其他函数因此在interp1d反转方向的那些点上给出了奇怪的结果。

我真正想要做的只是在每组两个相邻的x点之间插入一条直线,然后根据这个非常局部的近似值进行插值。是否有在 numpy 中执行此操作的功能,还是我必须自己安装一些功能?

1 个答案:

答案 0 :(得分:0)

你可以对你的xy对进行排序然后使用interp1d吗?像这样的东西?

import sort
xy = zip(x,y)
new_xy = sorted(xy, key=lambda xy: xy[0])
x = new_xy[:,0]
y = new_xy[:,1]

现在你的x是单调递增的,并且关系已被保留。