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

1 python numpy fft

快速傅里叶变换(fft;文档)将 \'a\' 转换为其傅里叶光谱等效项:

\n\n
numpy.fft.fft(a, n=None, axis=-1, norm=None) \n
Run Code Online (Sandbox Code Playgroud)\n\n

据我了解,该参数n代表\xe2\x80\x94\xe2\x80\x94输出中有多少个样本,其中如果n小于中的样本数,则输出被裁剪a,或者如果n是则用零填充更大。

\n\n

有什么axis作用?它到底是什么意思?我还没有找到任何明确的使用示例。

\n

jde*_*esa 6

np.fft.fft计算一维离散傅立叶变换。如果您给出一维输入(向量),它只会计算该输入的变换。但是,如果您的输入具有多个维度(例如 2D 矩阵或更高维度),NumPy 会假设您给出许多向量,并且您想要计算每个向量的变换。该axis参数表示这些向量对应的维度,默认为最后一个(-1)。因此,例如,对于 2D 矩阵m,如果axis=0每列m[:, 0]m[:, 1]等将是计算变换的向量,而传递axis=1(相当于默认值axis=-1)时,每行m[0, :]m[1, :]等将被视为向量变换。如果要计算输入中所有值的变换,无论维度如何,您都必须展平输入,例如使用np.ravel.

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