我对是否有办法进一步改进我最近收到的家庭作业中使用的功能的“快速”版本感兴趣(我已经提交了已完成的作品)。
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.5秒,慢速版本则为6-7秒。
答案 0 :(得分:2)
使用numpy:
import numpy as np
def func_faster(mass, density):
return (log(mass*density) / np.arange(1, 10001)).sum()
这比我的机器快10倍。