jax.scipy.fft.dctn#

jax.scipy.fft.dctn(x, type=2, s=None, axes=None, norm=None)[原始碼]#

計算輸入的多維離散餘弦轉換

JAX 實作的 scipy.fft.dctn()

參數:
  • x (Array) – 陣列

  • type (int) – 整數,預設值 = 2。目前僅支援 type 2。

  • s (Sequence[int] | None | None) – 整數或整數序列。指定結果的形狀。如果未指定,則預設為 x 沿指定 axes 的形狀。

  • axes (Sequence[int] | None | None) – 整數或整數序列。指定將計算轉換的軸。

  • norm (str | None | None) – 字串。正規化模式:[None, "backward", "ortho"] 之一。預設值為 None,相當於 "backward"

返回:

包含 x 的離散餘弦轉換的陣列

返回型別:

Array

參見

範例

axes 參數為 None 時,jax.scipy.fft.dctn 預設會沿兩個軸計算轉換。

>>> x = jax.random.normal(jax.random.key(0), (3, 3))
>>> with jnp.printoptions(precision=2, suppress=True):
...   print(jax.scipy.fft.dctn(x))
[[ 12.01   6.2  -10.17]
 [  8.84   9.65  -3.54]
 [ 11.25  -1.54  -0.88]]

s=[2] 時,沿 axis 0 的轉換維度將為 2,沿 axis 1 的維度將與輸入相同。

>>> with jnp.printoptions(precision=2, suppress=True):
...   print(jax.scipy.fft.dctn(x, s=[2]))
[[ 9.36 10.22 -8.53]
 [11.57  2.85 -2.06]]

s=[2]axes=[1] 時,沿 axis 1 的轉換維度將為 2,沿 axis 0 的維度將與輸入相同。此外,當 axes=[1] 時,轉換將僅沿 axis 1 計算。

>>> with jnp.printoptions(precision=2, suppress=True):
...   print(jax.scipy.fft.dctn(x, s=[2], axes=[1]))
[[ 7.3  -0.57]
 [ 0.19 -0.36]
 [-0.   -1.4 ]]

s=[2, 4] 時,轉換的形狀將為 (2, 4)

>>> with jnp.printoptions(precision=2, suppress=True):
...   print(jax.scipy.fft.dctn(x, s=[2, 4]))
[[  9.36  11.23   2.12 -10.97]
 [ 11.57   5.86  -1.37  -1.58]]