scipy.fft.idstn#

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

Return multidimensional Inverse Discrete Sine Transform along the specified axes.

Parameters:
xarray_like

The input array.

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

Type of the DST (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 is padded with zeros. If s[i] < x.shape[i], the ith dimension 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 IDST 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 IDST 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

dstn

multidimensional DST

Notes

For full details of the IDST types and normalization modes, as well as references, see idst.

Examples

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