我试图将下面的 MATLAB 代码重写为 Python,发现我的 Python 代码(2.7 秒)比 MATLAB(1.2 秒)慢。我尝试了许多不同的方法,包括模块 numba,但还没有运气。如何使 Python 代码更快?
MATLAB 代码:
szA=[1024,1280]; HfszA=[512,640];
[aPx,aPy]=meshgrid(-HfszA(2):HfszA(2)-1,-HfszA(1):HfszA(1)-1);
img=randi(255,1024,1280);
fx=rand(); fy=rand();
tic
for i=1:20
F=abs(sum(sum(img.*exp(-1i*2*pi*(fx*aPx+fy*aPy)))));
end
toc
蟒蛇代码:
import numpy as np
import time
szA=[1024,1280]; HfszA=[512,640]
aPx,aPy=np.meshgrid(np.arange(-HfszA[1],HfszA[1]),np.arange(-HfszA[0],HfszA[0]))
img=np.array(np.random.randint(256,size=(1024,1280)))
fx=np.random.rand()
fy=np.random.rand()
start = time.time()
for i in range(20):
F=abs(np.sum(img*np.exp(-1j*2*np.pi*(fx*aPx+fy*aPy))))
end = time.time()
print("Elapsed (after compilation) = %s" % (end - start))
print(F)
胡说叔叔
相关分类