numpy.fft.fft 中的 'axis' 参数是什么意思?



快速傅里叶变换(fft;文档(将"a"变换为其傅里叶谱等价物:

numpy.fft.fft(a, n=None, axis=-1, norm=None) 

据我所知,该参数n表示输出中有多少样本,如果输出小于a中的样本数,则n被裁剪,或者如果n较大,则用零填充。

axis做什么?这到底是什么意思?我找不到任何明确的使用示例。

np.fft.fft计算一维离散傅里叶变换。如果您给出一维输入(向量(,它将只计算该输入的转换。但是,如果您的输入具有多个维度(如 2D 矩阵(或更高维度,则 NumPy 会假设您提供了许多向量,并且您希望计算每个向量的变换。axis参数指示与这些向量对应的维度,默认情况下它是最后一个 (-1(。因此,例如,对于二维矩阵m,如果axis=0则每列m[:, 0]m[:, 1]等将是计算变换的向量,而传递axis=1(相当于默认axis=-1(,每一行m[0, :]m[1, :]等将被视为变换的向量。如果要计算输入中所有值的转换,而不考虑维度,则必须平展输入,例如使用np.ravel

顺便说一句,这是 NumPy(以及许多其他代数包(中非常常见的约定,其中一维操作可以通过接收指示执行操作的维度的axis参数来处理多维输入。

numpy.fft.fft()返回数组的一维傅里叶变换。这意味着如果你有一个形状数组(N,M)不会给你一个二维的fft(np.fft.fft2()这样做(,而是沿着最后一个轴返回fft。如果您希望沿着列而不是行计算 fft,则应传递axis=0.

最新更新