【发布时间】:2012-11-06 18:34:42
【问题描述】:
我有一些x 和y 数据,其中x 向量中的每个条目在y 向量中都有一个对应的条目。此外,x 数据的间距不均匀。
我想在x 样本之间进行插值,以获得x 维度中的均匀间距,并近似对应的y 值。在 numpy 中,interp1d 似乎是一个自然的解决方案,但我的问题有一个警告:x 值不是单调递增的(因为 x 和 y 都是时间的函数)。 interp1d 函数和 interpolate 模块中的其他函数因此在 x 反转方向的那些点上给出奇怪的结果。
我真正想做的只是在每组两个相邻的x 点之间拟合一条直线,然后根据这个非常局部的近似值进行插值。 numpy 中是否有执行此操作的功能,还是我必须自己安装一些东西?
【问题讨论】:
-
您应该记住将有用的答案标记为“已接受”;这有助于其他人在查看您的问题时找到最有用的答案,也可以让您花时间帮助您的人获得认可。
-
如果
x不是单调递增或递减,则说明您没有唯一映射。例如,如果你有x=array([0, 1, 0]),如果你通过xx = 0.5,应该对哪两个点进行插值? -
我知道没有唯一的映射。但是,假设 x = array([0,1,0]) 如果我将插值输入作为 xx=array([0, 0.5, 1, 0.5, 0]),那么我想得到什么第一个 0.5 值是第一个 2 年之间的中点,第二个 0.5 值是第二个 2 年之间的中点,如果这种解释有意义的话。
-
您可以访问时间变量吗?如果是这样,您可以使用多元回归根据 x 和 t 预测 y。
-
多元回归听起来很合理,但除此之外,我需要弄清楚 y 作为 x 的函数变化的速度有多快,这基本上减少了我自己操纵的东西。
标签: python numpy interpolation