numpy.fft 和 scipy.fftpack 有什么区别?
·
问题:numpy.fft 和 scipy.fftpack 有什么区别?
后者只是前者的同义词,还是它们是 FFT 的两种不同实现?哪一个更好?
解答
SciPy 做得更多:
-
http://docs.scipy.org/doc/numpy/reference/routines.fft.html
-
http://docs.scipy.org/doc/scipy/reference/fftpack.html#
此外,SciPy 通过其自己的接口导出一些 NumPy 功能,例如,如果您执行 scipy.fftpack.helper.fftfreq 和 numpy.fft.helper.fftfreq,您实际上运行的是相同的代码。
但是,SciPy 有自己的许多功能实现。该源具有比较原始 NumPy 和新 SciPy 版本的性能基准。我的老式笔记本电脑显示如下:
Fast Fourier Transform
=================================================
| real input | complex input
-------------------------------------------------
size | scipy | numpy | scipy | numpy
-------------------------------------------------
100 | 0.07 | 0.06 | 0.06 | 0.07 (secs for 7000 calls)
1000 | 0.06 | 0.09 | 0.09 | 0.09 (secs for 2000 calls)
256 | 0.11 | 0.11 | 0.12 | 0.11 (secs for 10000 calls)
512 | 0.16 | 0.21 | 0.20 | 0.21 (secs for 10000 calls)
1024 | 0.03 | 0.04 | 0.04 | 0.04 (secs for 1000 calls)
2048 | 0.05 | 0.09 | 0.08 | 0.08 (secs for 1000 calls)
4096 | 0.05 | 0.08 | 0.07 | 0.09 (secs for 500 calls)
8192 | 0.10 | 0.20 | 0.19 | 0.21 (secs for 500 calls)
随着数组大小的增加,SciPy 的运行速度似乎确实要快得多,尽管这些只是人为的示例,对于您的特定项目来说,两者都值得试验。
值得查看源代码http://www.scipy.org/Download#head-312ad78cdf85a9ca6fa17a266752069d23f785d1。是的,那些 .f 文件真的是 Fortran! :-D
更多推荐

所有评论(0)