scipy.fftpack.fftn

scipy.fftpack.fftn(x, shape=None, axes=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的INT或ARRAY_LIKE或NONE,可选

结果的形状。如果两者都有 shapeaxes (见下文)都不是, shapex.shape ;如果 shape 不是别的,而是 axes 不是没有,那么 shapenumpy.take(x.shape, axes, axis=0) 。如果 shape[i] > x.shape[i] ,第i维用零填充。如果 shape[i] < x.shape[i] ,则将第i维截断为长度。 shape[i] 。如果有任何元素 shape 的相应维度的大小为-1。 x 是使用的。

axesINT的INT或ARRAY_LIKE或NONE,可选

The axes of x (y if shape is not None) along which the transform is applied. The default is over all axes.

overwrite_x布尔值,可选

如果为True,则 x 可以被摧毁。默认值为False。

退货
y复值N维NumPy数组

输入数组的(N-D)DFT。

参见

ifftn

注意事项

如果 x 是实值的,那么 y[..., j_i, ...] == y[..., n_i-j_i, ...].conjugate()

实现了单精度和双精度例程。半精度输入将转换为单精度。非浮点输入将转换为双精度。不支持长双精度输入。

示例

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