【发布时间】:2021-01-27 13:42:21
【问题描述】:
我正在做一个双循环来对一个以网格为输入的函数求和。问题是它运行速度很慢......我想用另一种程序优化代码,也许使用numpy的vectorize函数,但我不知道如何实现。我向您展示我拥有的代码:
import numpy as np
import time
Lxx = 2.
Lyy = 1.0
dxx = dyy = 0.01
nxx = 100
nyy = 100
XX, YY = np.meshgrid(np.arange(0, Lxx+dxx, dxx), np.arange(0, Lyy+dyy, dyy)) #mesh grid
def solution(xx,yy,nnmax,mmmax):
sol = 0.
for m in range(nnmax):
for n in range(mmmax):
sol = sol+np.sin(XX*0.356*n)+np.cos(YY*2.3*m)
return sol
start = time.time()
solution(XX,YY,nxx,nyy)
end = time.time()
print ("TIME", end-start)
我想要的是对 nxx, nyy 中的大值求和。但是当然这需要很多时间......这就是我要优化代码的原因。
【问题讨论】:
标签: python numpy optimization