jax.numpy.fft.ifftn

目录

jax.numpy.fft.ifftn#

jax.numpy.fft.ifftn(a, s=None, axes=None, norm=None)[source]#

计算多维逆离散傅里叶变换。

JAX 实现 numpy.fft.ifftn().

参数:
  • a (ArrayLike) – 输入数组

  • s (Shape | None | None) – 整数序列。指定结果的形状。如果未指定,它将默认为 a 沿指定 axes 的形状。

  • axes (Sequence[int] | None | None) – 整数序列,默认值=None。指定计算变换的轴。如果为 None,则沿所有轴计算变换。

  • norm (str | None | None) – 字符串。归一化模式。“backward”、“ortho” 和 “forward” 受支持。

返回值:

包含 a 的多维逆离散傅里叶变换的数组。

返回类型:

Array

另请参阅

示例

jnp.fft.ifftnaxes 参数为 None 时,默认情况下计算所有轴的变换。

>>> x = jnp.array([[1, 2, 5, 3],
...                [4, 1, 2, 6],
...                [5, 3, 2, 1]])
>>> with jnp.printoptions(precision=2, suppress=True):
...   print(jnp.fft.ifftn(x))
[[ 2.92+0.j    0.08-0.33j  0.25+0.j    0.08+0.33j]
 [-0.08+0.14j -0.04-0.03j  0.  -0.29j -1.05-0.11j]
 [-0.08-0.14j -1.05+0.11j  0.  +0.29j -0.04+0.03j]]

s=[3] 时,沿 axis -1 的变换维度将为 3,其他轴的维度将与输入相同。

>>> with jnp.printoptions(precision=2, suppress=True):
...   print(jnp.fft.ifftn(x, s=[3]))
[[ 2.67+0.j   -0.83-0.87j -0.83+0.87j]
 [ 2.33+0.j    0.83-0.29j  0.83+0.29j]
 [ 3.33+0.j    0.83+0.29j  0.83-0.29j]]

s=[2]axes=[0] 时,沿 axis 0 的变换维度将为 2,其他轴的维度将与输入相同。

>>> with jnp.printoptions(precision=2, suppress=True):
...   print(jnp.fft.ifftn(x, s=[2], axes=[0]))
[[ 2.5+0.j  1.5+0.j  3.5+0.j  4.5+0.j]
 [-1.5+0.j  0.5+0.j  1.5+0.j -1.5+0.j]]

s=[2, 3] 时,变换的形状将为 (2, 3)

>>> with jnp.printoptions(precision=2, suppress=True):
...   print(jnp.fft.ifftn(x, s=[2, 3]))
[[ 2.5 +0.j    0.  -0.58j  0.  +0.58j]
 [ 0.17+0.j   -0.83-0.29j -0.83+0.29j]]