jax.numpy.interp#

jax.numpy.interp(x, xp, fp, left=None, right=None, period=None)[源代码]#

一维线性插值。

JAX 实现了 numpy.interp() 函数。

参数:
  • x (ArrayLike) – N 维数组,表示要进行插值的 x 坐标。

  • xp (ArrayLike) – 一维排序数组,表示要插值的点的 x 坐标。

  • fp (ArrayLike) – 形状与 xp.shape 相同的数组,包含与 xp 关联的函数值。

  • left (ArrayLike | str | None | None) – 指定如何处理 x < xp[0] 的点。 默认返回 fp[0]。 如果 left 是标量值,则返回此值。 如果 left 是字符串 "extrapolate",则该值将通过线性外推确定。 如果指定了 period,则忽略 left

  • right (ArrayLike | str | None | None) – 指定如何处理 x > xp[-1] 的点。 默认返回 fp[-1]。 如果 right 是标量值,则返回此值。 如果 right 是字符串 "extrapolate",则该值将通过线性外推确定。 如果指定了 period,则忽略 right

  • period (ArrayLike | None | None) – 可选参数,指定 x 坐标的周期,例如用于角空间的插值。

返回:

一个形状为 x.shape 的数组,包含在 x 值处的插值函数。

返回类型:

Array

示例

>>> xp = jnp.arange(10)
>>> fp = 2 * xp
>>> x = jnp.array([0.5, 2.0, 3.5])
>>> interp(x, xp, fp)
Array([1., 4., 7.], dtype=float32)

除非另有说明,否则外推将是常数。

>>> x = jnp.array([-10., 10.])
>>> interp(x, xp, fp)
Array([ 0., 18.], dtype=float32)

使用 "extrapolate" 模式进行线性外推。

>>> interp(x, xp, fp, left='extrapolate', right='extrapolate')
Array([-20.,  20.], dtype=float32)

对于周期性插值,请指定 period

>>> xp = jnp.array([0, jnp.pi / 2, jnp.pi, 3 * jnp.pi / 2])
>>> fp = jnp.sin(xp)
>>> x = 2 * jnp.pi  # note: not in input array
>>> jnp.interp(x, xp, fp, period=2 * jnp.pi)
Array(0., dtype=float32)