fft.rfft2(a, s=None, axes=(-2, -1), norm=None, out=None)[source]#

Compute the 2-dimensional FFT of a real array.


Input array, taken to be real.

ssequence of ints, optional

Shape of the FFT.

Changed in version 2.0: If it is -1, the whole input is used (no padding/trimming).

Deprecated since version 2.0: If s is not None, axes must not be None either.

Deprecated since version 2.0: s must contain only int s, not None values. None values currently mean that the default value for n is used in the corresponding 1-D transform, but this behaviour is deprecated.

axessequence of ints, optional

Axes over which to compute the FFT. Default: (-2, -1).

Deprecated since version 2.0: If s is specified, the corresponding axes to be transformed must not be None.

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

New in version 1.10.0.

Normalization mode (see numpy.fft). Default is “backward”. Indicates which direction of the forward/backward pair of transforms is scaled and with what normalization factor.

New in version 1.20.0: The “backward”, “forward” values were added.

outcomplex ndarray, optional

If provided, the result will be placed in this array. It should be of the appropriate shape and dtype for the last inverse transform. incompatible with passing in all but the trivial s).

New in version 2.0.0.


The result of the real 2-D FFT.

See also


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


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


>>> a = np.mgrid[:5, :5][0]
>>> np.fft.rfft2(a)
array([[ 50.  +0.j        ,   0.  +0.j        ,   0.  +0.j        ],
       [-12.5+17.20477401j,   0.  +0.j        ,   0.  +0.j        ],
       [-12.5 +4.0614962j ,   0.  +0.j        ,   0.  +0.j        ],
       [-12.5 -4.0614962j ,   0.  +0.j        ,   0.  +0.j        ],
       [-12.5-17.20477401j,   0.  +0.j        ,   0.  +0.j        ]])