python - Scipy 操作是逐行完成的,而不是像 Matlab 中那样逐列完成的?

标签 python matlab numpy

我是 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/

相关文章:

python - 硬编码 python 日期时间

python - python 中的文件到套接字适配器

matlab - 这是 `min` 和 `nanmin` 之间的区别; Matlab 中的 `max` 和 `nanmax`?

python - cifar10 随机化训练和测试集

python - 在 numpy 数组中查找切片的位置

python - 如何找到pg_config路径

matlab - 使用刚性变换拟合图像

matlab - 有没有一种有效的方法可以在所有边上用零填充矩阵?

python - 在 3d 空间中找到 python numpy.ndarray 的最近邻居

python - Neo4j 和 Django 测试