我有一些x
和y
数据,其中x
向量中的每个条目都有y
向量中的相应条目。此外,x
数据的间隔不均匀。
我希望在x
个样本之间进行插值,以获得x
维度中的偶数间距,并估算相应的y
值。在 numpy 中,interp1d
似乎是一个自然的解决方案,但我的问题有一个警告:x
值不是单调增加的(因为x
和{{ 1}}是时间的函数)。 y
函数和插值模块中的其他函数因此在interp1d
反转方向的那些点上给出了奇怪的结果。
我真正想要做的只是在每组两个相邻的x
点之间插入一条直线,然后根据这个非常局部的近似值进行插值。是否有在 numpy 中执行此操作的功能,还是我必须自己安装一些功能?
答案 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是单调递增的,并且关系已被保留。