在Python中执行函数计算的更快方法?

时间:2015-01-08 12:22:26

标签: python performance python-3.4

我对是否有办法进一步改进我最近收到的家庭作业中使用的功能的“快速”版本感兴趣(我已经提交了已完成的作品)。

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秒。

1 个答案:

答案 0 :(得分:2)

使用numpy:

import numpy as np

def func_faster(mass, density):
    return (log(mass*density) / np.arange(1, 10001)).sum()

这比我的机器快10倍。