声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 4517|回复: 4

[Python] 试试你的Numpy的FFT比Matlab的FFT快多少?

[复制链接]
发表于 2014-2-27 20:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
不试一下绝对想不到,按照FFTW的宣传他们比fftpack快三倍。Numpy用的是fftpack,Matlab用的是FFTW,为什么Numpy不用更快的FFTW呢?事实是这样吗?大家都测试测试。

Matlab 用这个代码吧,改里面的n,可以试试10的幂次和2的幂次
n=10000;
a=rand(n,1);
tic;fft(a);toc;
tic;fft(a);toc

Python用这个代码吧,改里面的n (在IPython里跑了,懒得写timeit的代码)

import numpy as np
n=10000;
a=np.random.random((n,1))
%timeit np.fft.fft(a)

以下是我的机器的结果
Matlab:
n=10000;
Elapsed time is 0.000147 seconds.
n=100000;
Elapsed time is 0.001076 seconds.
n=1000000;
Elapsed time is 0.012248 seconds.
n=10000000;
Elapsed time is 0.301267 seconds.
n=2^10;
Elapsed time is 0.000087 seconds.
n=2^15;
Elapsed time is 0.000859 seconds.
n=2^20;
Elapsed time is 0.024616 seconds.
n=2^25;
Elapsed time is 0.787241 seconds.

Python:
n=10000;
10000 loops, best of 3: 40.5 us per loop
n=100000;
1000 loops, best of 3: 681 us per loop
n=1000000;
100 loops, best of 3: 7.66 ms per loop
n=10000000;
10 loops, best of 3: 76 ms per loop
n=2**10
100000 loops, best of 3: 7.75 us per loop
n=2**15
10000 loops, best of 3: 124 us per loop
n=2**20
100 loops, best of 3: 7.81 ms per loop
n=2**25
1 loops, best of 3: 245 ms per loop

结论:虽然不知道怎么回事,但是在我机器上Numpy的FFT速度完胜Matlab,和FFTW官网声称的速度相差甚远。请大家在自己的机器上测试一下FFT的速度。

本帖被以下淘专辑推荐:

回复
分享到:

使用道具 举报

发表于 2014-4-14 01:03 | 显示全部楼层
没试过python
发表于 2014-4-17 21:27 | 显示全部楼层
试了一下,ipython程序计时比较方便
发表于 2014-4-17 21:32 | 显示全部楼层
n=10000, 10000 loops, best of 3: 65.5 μs per loop

n=100000, 1000 loops, best of 3: 1.28 ms per loop

n=1000000,100 loops, best of 3: 14.3 ms per loop

n=10000000,  10 loops, best of 3: 148 ms per loop






发表于 2014-4-17 21:33 | 显示全部楼层
本帖最后由 epistemer 于 2014-4-17 21:41 编辑

我的耗时比你的多啊,不过我是笔记本
matlab
n=10000;
Elapsed time is 0.250556 seconds.
Elapsed time is 0.000190 seconds.

n=100000;
Elapsed time is 0.043305 seconds.
Elapsed time is 0.002512 seconds.

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-23 10:18 , Processed in 0.067033 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表