scipy.fft.idctn#

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

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.

New 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