scipy.fft.

rfft2#

scipy.fft.rfft2(x, s=None, axes=(-2, -1), norm=None, overwrite_x=False, workers=None, *, plan=None)[source]#

Compute the 2-D FFT of a real array.

Parameters:
xarray

Input array, taken to be real.

ssequence of ints, optional

Shape of the FFT.

axessequence of ints, optional

Axes over which to compute the FFT.

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

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

overwrite_xbool, optional

If True, the contents of x can be destroyed; the default is False. See fft for more details.

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.

planobject, optional

This argument is reserved for passing in a precomputed plan provided by downstream FFT vendors. It is currently not used in SciPy.

Added in version 1.5.0.

Returns:
outndarray

The result of the real 2-D FFT.

See also

irfft2

The inverse of the 2-D FFT of real input.

rfft

The 1-D FFT of real input.

rfftn

Compute the N-D discrete Fourier Transform for real input.

Notes

This is really just rfftn with different default behavior. For more details see rfftn.

Array API Standard Support

rfft2 has experimental support for Python Array API Standard compatible backends in addition to NumPy. Please consider testing these features by setting an environment variable SCIPY_ARRAY_API=1 and providing CuPy, PyTorch, JAX, or Dask arrays as array arguments. The following combinations of backend and device (or other capability) are supported.

Library

CPU

GPU

NumPy

n/a

CuPy

n/a

PyTorch

JAX

Dask

⚠️ computes graph

n/a

See Support for the array API standard for more information.

Examples

>>> import scipy.fft
>>> import numpy as np
>>> x = np.broadcast_to([1, 0, -1, 0], (4, 4))
>>> scipy.fft.rfft2(x)
array([[0.+0.j, 8.+0.j, 0.+0.j],
       [0.+0.j, 0.+0.j, 0.+0.j],
       [0.+0.j, 0.+0.j, 0.+0.j],
       [0.+0.j, 0.+0.j, 0.+0.j]])