def fourier_shift(input, shift, n=-<NUM_LIT:1>, axis=-<NUM_LIT:1>, output=None):
input = numpy.asarray(input)<EOL>output, return_value = _get_output_fourier_complex(output, input)<EOL>axis = _ni_support._check_axis(axis, input.ndim)<EOL>shifts = _ni_support._normalize_sequence(shift, input.ndim)<EOL>shifts = numpy.asarray(shifts, dtype=numpy.float64)<EOL>if not shifts.flags.contiguous:<EOL><INDENT>shifts = shifts.copy()<EOL><DEDENT>_nd_image.fourier_shift(input, shifts, n, axis, output)<EOL>return return_value<EOL>
Multi-dimensional fourier shift filter.

The array is multiplied with the fourier transform of a shift operation.

Parameters
----------
input : array_like
    The input array.
shift : float or sequence
    The size of the box used for filtering.
    If a float, `shift` is the same for all axes. If a sequence, `shift`
    has to contain one value for each axis.
n : int, optional
    If `n` is negative (default), then the input is assumed to be the
    result of a complex fft.
    If `n` is larger than or equal to zero, the input is assumed to be the
    result of a real fft, and `n` gives the length of the array before
    transformation along the real transform direction.
axis : int, optional
    The axis of the real transform.
output : ndarray, optional
    If given, the result of shifting the input is placed in this array.
    None is returned in this case.

Returns
-------
fourier_shift : ndarray or None
    The shifted input. If `output` is given as a parameter, None is
    returned.