我感兴趣的是,是否有办法进一步改进我最近收到的家庭作业中使用的函数的“快速”版本(我已经提交了完成的工作)。
from math import log
def func_fast(mass, density):
return sum(map((log(mass * density)).__truediv__, range(1,10001)))
def func_slow(mass, density):
total = 0.0
for i in range(10000):
masslog = log(mass * density)
total += masslog/(i+1)
return total
mass = 2.5
density = 12.0快速版本的时间约为2-2.5ish秒,而慢版本的时间为6-7秒。
发布于 2015-01-08 20:28:16
使用numpy:
import numpy as np
def func_faster(mass, density):
return (log(mass*density) / np.arange(1, 10001)).sum()这在我的机器上快了10倍。
https://stackoverflow.com/questions/27840058
复制相似问题