jax.numpy.fft.fftn#
- jax.numpy.fft.fftn(a, s=None, axes=None, norm=None)[原始碼]#
沿給定軸計算多維離散傅立葉轉換。
JAX 實作的
numpy.fft.fftn()
。- 參數:
- 返回:
一個包含
a
的多維離散傅立葉轉換的陣列。- 返回類型:
另請參閱
jax.numpy.fft.fft()
:計算一維離散傅立葉轉換。jax.numpy.fft.ifft()
:計算一維反離散傅立葉轉換。jax.numpy.fft.ifftn()
:計算多維反離散傅立葉轉換。
範例
當
axes
參數為None
時,jnp.fft.fftn
預設會沿所有軸計算轉換。>>> x = jnp.array([[1, 2, 5, 6], ... [4, 1, 3, 7], ... [5, 9, 2, 1]]) >>> with jnp.printoptions(precision=2, suppress=True): ... jnp.fft.fftn(x) Array([[ 46. +0.j , 0. +2.j , -6. +0.j , 0. -2.j ], [ -2. +1.73j, 6.12+6.73j, 0. -1.73j, -18.12-3.27j], [ -2. -1.73j, -18.12+3.27j, 0. +1.73j, 6.12-6.73j]], dtype=complex64)
當
s=[2]
時,沿axis -1
的轉換維度將為2
,而沿其他軸的維度將與輸入相同。>>> with jnp.printoptions(precision=2, suppress=True): ... print(jax.numpy.fft.fftn(x, s=[2])) [[ 3.+0.j -1.+0.j] [ 5.+0.j 3.+0.j] [14.+0.j -4.+0.j]]
當
s=[2]
且axes=[0]
時,沿axis 0
的轉換維度將為2
,而沿其他軸的維度將與輸入相同。>>> with jnp.printoptions(precision=2, suppress=True): ... print(jax.numpy.fft.fftn(x, s=[2], axes=[0])) [[ 5.+0.j 3.+0.j 8.+0.j 13.+0.j] [-3.+0.j 1.+0.j 2.+0.j -1.+0.j]]
當
s=[2, 3]
時,轉換的形狀將為(2, 3)
。>>> with jnp.printoptions(precision=2, suppress=True): ... print(jax.numpy.fft.fftn(x, s=[2, 3])) [[16. +0.j -0.5+4.33j -0.5-4.33j] [ 0. +0.j -4.5+0.87j -4.5-0.87j]]
jnp.fft.ifftn
可用於從jnp.fft.fftn
的結果重建x
。>>> x_fftn = jnp.fft.fftn(x) >>> jnp.allclose(x, jnp.fft.ifftn(x_fftn)) Array(True, dtype=bool)