scipy.fft.dstn#

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

Return multidimensional 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 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 shape 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 DST 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 DST 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

idstn

Inverse multidimensional DST

Notes

For full details of the DST types and normalization modes, as well as references, see dst.

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