jax.numpy.vander#

jax.numpy.vander(x, N=None, increasing=False)[源代码]#

生成范德蒙德矩阵。

JAX 实现 numpy.vander()

参数:
  • x (ArrayLike) – 输入数组。必须满足 x.ndim == 1

  • N (int | None) – int, 可选, 默认值=None。指定输出矩阵的列数。如果未指定, 则 N = len(x)

  • increasing (bool) – bool, 可选, 默认值=False。指定列的幂次顺序。如果为 True, 则幂次从左到右递增, \([x^0, x^1, ..., x^{(N-1)}]\)。默认情况下, 幂次从左到右递减 \([x^{(N-1)}, ..., x^1, x^0]\)

返回:

一个形状为 [len(x), N] 的数组, 包含生成的范德蒙德矩阵。

返回类型:

Array

示例

>>> x = jnp.array([1, 2, 3, 4])
>>> jnp.vander(x)
Array([[ 1,  1,  1,  1],
       [ 8,  4,  2,  1],
       [27,  9,  3,  1],
       [64, 16,  4,  1]], dtype=int32)

如果 N = 2, 则生成一个包含 2 列的范德蒙德矩阵。

>>> jnp.vander(x, N=2)
Array([[1, 1],
       [2, 1],
       [3, 1],
       [4, 1]], dtype=int32)

increasing=True 时, 以递增的幂次顺序生成范德蒙德矩阵。

>>> jnp.vander(x, increasing=True)
Array([[ 1,  1,  1,  1],
       [ 1,  2,  4,  8],
       [ 1,  3,  9, 27],
       [ 1,  4, 16, 64]], dtype=int32)