scipy.fftpack.

fftn#

scipy.fftpack.fftn(x, shape=None, оси=None, overwrite_x=False)[источник]#

Вернуть многомерное дискретное преобразование Фурье.

Возвращаемый массив содержит:

y[j_1,..,j_d] = sum[k_1=0..n_1-1, ..., k_d=0..n_d-1]
   x[k_1,..,k_d] * prod[i=1..d] exp(-sqrt(-1)*2*pi/n_i * j_i * k_i)

где d = len(x.shape) и n = x.shape.

Параметры:
xarray_like

(N-D) массив для преобразования.

shapeint или array_like из ints или None, опционально

Форма результата. Если оба shape и оси (см. ниже) являются None, shape является x.shape; если shape равно None, но оси не является None, тогда shape является numpy.take(x.shape, axes, axis=0). Если shape[i] > x.shape[i], i-е измерение дополняется нулями. Если shape[i] < x.shape[i], i-е измерение обрезается до длины shape[i]. Если любой элемент shape равно -1, размер соответствующего измерения x используется.

осиint или array_like из ints или None, опционально

Оси x (y if shape не равно None) вдоль которого применяется преобразование. По умолчанию — по всем осям.

overwrite_xbool, необязательно

Если True, содержимое x может быть уничтожен. По умолчанию False.

Возвращает:
yкомплекснозначный N-мерный массив NumPy

(N-мерное) ДПФ входного массива.

Смотрите также

ifftn

Примечания

Если x является действительным, тогда y[..., j_i, ...] == y[..., n_i-j_i, ...].conjugate().

Реализованы процедуры как для одинарной, так и для двойной точности. Входные данные с половинной точностью будут преобразованы в одинарную точность. Нечисловые входные данные будут преобразованы в двойную точность. Входные данные с расширенной двойной точностью не поддерживаются.

Примеры

>>> import numpy as np
>>> from scipy.fftpack import fftn, ifftn
>>> y = (-np.arange(16), 8 - np.arange(16), np.arange(16))
>>> np.allclose(y, fftn(ifftn(y)))
True