我想要插值一个numpy数组,而np.interp几乎完全符合我的要求:
interp(x, xp, fp, left=None, right=None)
One-dimensional linear interpolation.
除此之外:
不检查 x 坐标序列
xp
是否递增。如果xp
不是递增的,则结果毫无意义。
我的 xp
是递减的,那么哪个更好:
反转 xp
和 fp
的方向:
np.interp(x, xp[::-1], fp[::-1])
或将x和xp反转:
np.interp(-x, -xp, fp)
还有更好的方法吗?
interp
需要一个连续的数组才能工作(请参见此处的源代码[https://github.com/numpy/numpy/blob/master/numpy/core/src/multiarray/compiled_base.c#L533]),而反向视图则不是连续的。因此,即使@kattern的建议似乎是一个好主意,它仍然会生成临时数组。只有两个而不是三个,所以这可能仍然是更好的选择。 - Jaime