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
值处的插值函数。- 返回类型:
示例
>>> 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)