scipy.fftpack.
fftn#
- scipy.fftpack.fftn(x, shape=None, axes=None, overwrite_x=False)[source]#
傳回多維離散傅立葉轉換。
傳回的陣列包含
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 維) 陣列。
- shapeint 或 array_like of ints 或 None,選用
結果的形狀。如果 shape 和 axes (見下方) 皆為 None,則 shape 為
x.shape
;如果 shape 為 None 但 axes 不為 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 對應維度的大小。- axesint 或 array_like of ints 或 None,選用
要沿其應用轉換的 x (如果 shape 不為 None 則為 y) 的軸。預設值為所有軸。
- overwrite_xbool,選用
如果為 True,則可以破壞 x 的內容。預設值為 False。
- 傳回值:
- y複數值 N 維 NumPy 陣列
輸入陣列的 (N 維) DFT。
另請參閱
註解
如果
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