我是 NumPy、SciPy 的新手。之前,我已经使用Matlab/Octave很长时间了。
看起来scipy.fftpack.fft
对于二维数组逐行工作。对我来说,这非常令人困惑,因为在 Matlab 中,此类操作是逐列完成的。 scipy 中的所有其他操作也是逐行执行的吗?
我可以像在 Matlab 中那样在 NumPy/SciPy 中逐列执行运算吗?
最佳答案
Numpy 的 fft()
接受“axis”参数,因此您可以请求按列 FFT,而不是默认的逐行 FFT。
例如,以下命令返回 x
中每列的 16 点 FFT:(如果您不知道数字,可以为第二个参数指定 None
行数):
import numpy as np
x = np.hstack([np.zeros((16,1)), np.ones((16,1))])
x[0,0] = 1
f = np.fft.fft(x, 16, 0)
f
的第一列是全为 1 的 delta 函数的 FFT。 f
的第二列是常数序列的 FFT,它是频域中的 delta 函数。
关于python - Scipy 操作是逐行完成的,而不是像 Matlab 中那样逐列完成的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32154985/