Skip to main content
`Ctrl`+`K`
scipy.fft.

# idctn

scipy.fft.idctn(x, type=2, s=None, axes=None, norm=None, overwrite_x=False, workers=None, orthogonalize=None)

  Return multidimensional Inverse Discrete Cosine Transform along the specified axes.

  Parameters:
    xarray_like

      The input array.

    type{1, 2, 3, 4}, optional

      Type of the DCT (see Notes). Default type is 2.

    sint or array_like of ints or None, optional

      The shape of the result. If both s and axes (see below) are None, s is `x.shape`; if s is None but axes is not None, then s is `numpy.take(x.shape, axes, axis=0)`. If `s[i] > x.shape[i]`, the ith dimension of the input is padded with zeros. If `s[i] < x.shape[i]`, the ith dimension of the input is truncated to length `s[i]`. If any element of s is -1, the size of the corresponding dimension of x is used.

    axesint or array_like of ints or None, optional

      Axes over which the IDCT is computed. If not given, the last `len(s)` axes are used, or all axes if s is also not specified.

    norm{“backward”, “ortho”, “forward”}, optional

      Normalization mode (see Notes). Default is “backward”.

    overwrite_xbool, optional

      If True, the contents of x can be destroyed; the default is False.

    workersint, optional

      Maximum number of workers to use for parallel computation. If negative, the value wraps around from `os.cpu_count()`. See `fft` for more details.

    orthogonalizebool, optional

      Whether to use the orthogonalized IDCT variant (see Notes). Defaults to `True` when `norm="ortho"` and `False` otherwise.

      Added in version 1.8.0.

  Returns:
    yndarray of real

      The transformed input array.

  See also

  `dctn`

    multidimensional DCT

  Notes

  For full details of the IDCT types and normalization modes, as well as references, see `idct`.

  Examples

      >>> import numpy as np
      >>> from scipy.fft import dctn, idctn
      >>> rng = np.random.default_rng()
      >>> y = rng.standard_normal((16, 16))
      >>> np.allclose(y, idctn(dctn(y)))
      True