scipy.fftpack.idctn#

scipy.fftpack.idctn(x, type=2, shape=None, axes=None, norm=None, overwrite_x=False)[source]#

Return multidimensional 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.

shapeint or array_like of ints or None, optional

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

axesint or array_like of ints or None, optional

Axes along which the IDCT is computed. The default is over all axes.

norm{None, ‘ortho’}, optional

Normalization mode (see Notes). Default is None.

overwrite_xbool, optional

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

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.fftpack import dctn, idctn
>>> rng = np.random.default_rng()
>>> y = rng.standard_normal((16, 16))
>>> np.allclose(y, idctn(dctn(y, norm='ortho'), norm='ortho'))
True