首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python3 numpy.fft.fft() vs Python2 numpy.fft.fft()

Python3 numpy.fft.fft() vs Python2 numpy.fft.fft()
EN

Stack Overflow用户
提问于 2020-08-19 20:09:09
回答 2查看 101关注 0票数 1

在我的MacBook专业版上运行以下代码后,我发现python3 numpy.fft.fft比python2更快:

代码语言:javascript
复制
import random
import time
# import matplotlib
import numpy as np 
from scipy.fftpack import fft
# import cv2

coordinate = np.ndarray((1920, 1080, 2))
print(coordinate.shape)

for i in range(1920):
    for j in range(1080):
      coordinate[i][j] = (random.randint(0, 1920), random.randint(0, 1080))

print(coordinate[0][0])
# test = ([2.+4.j, 3.+3.j, 4.+4.j, 5.+3.j, 4.+2.j, 3.+1.j, 2.+2.j, 1.+3.j])
start_time = time.time();
res = np.fft.fft(coordinate)
end_time = time.time();
print("spend time: ", (end_time - start_time));

结果是:

代码语言:javascript
复制
% python2 ./test.py
(1920, 1080, 2)
[ 1022.   435.]
('spend time: ', 0.06316184997558594)
% python3 ./test.py
(1920, 1080, 2)
[1143.  678.]
spend time:  0.18218493461608887

蟒蛇的numpy版本都是1.19.1

Python2: 2.7.16

Python3: 3.7.3

为什么python2比python3快?

EN

回答 2

Stack Overflow用户

发布于 2020-08-19 21:17:04

我对你的测试做了一点修改,我想这会改变你的结论。修改后的代码如下:

代码语言:javascript
复制
import random
import time
# import matplotlib
import numpy as np 
from scipy.fftpack import fft
# import cv2

np.random.seed(1234)

first = np.random.randint(0, 1920, (1920, 1080))
second = np.random.randint(0, 1080, (1920, 1080))

coordinate = np.dstack((first, second))
print(coordinate.shape)

print(coordinate[0][0])

start_time = time.time();
for i in range(100):
  res = np.fft.fft(coordinate)
end_time = time.time();
print("spend time: ", (end_time - start_time)/100);

首先,我让ftt函数在循环中运行100次,以获得更好的平均值。其次,我对所有测试使用相同的种子,因此结果数组coordinate对于所有测试都是相同的。

第三个更改不会影响测试,它只是创建coordinate数组的一种更快的方法。

我使用python2和python3多次运行测试(不是在我的机器上,但我使用了repl.it),我的结论是实际上没有太大区别。就我而言,经常使用python3测试比使用python2更快。

票数 0
EN

Stack Overflow用户

发布于 2020-08-25 15:11:19

我把这个问题作为一个问题发布在GitHub上:https://github.com/numpy/numpy/issues/17130

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63486650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档