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

在Python中执行函数计算的更快方法?,python,performance,python-3.4,Python,Performance,Python 3.4,我感兴趣的是,是否有办法进一步改进我最近收到的家庭作业中使用的函数的“快速”版本(我已经提交了完成的工作) 快速版本的运行时间约为2-2.5秒,而慢速版本的运行时间为6-7秒。使用numpy: import numpy as np def func_faster(mass, density): return (log(mass*density) / np.arange(1, 10001)).sum() 这在我的机器上快了10倍。total+=log(mass*density)/(i+

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

快速版本的运行时间约为2-2.5秒,而慢速版本的运行时间为6-7秒。

使用numpy:

import numpy as np

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

这在我的机器上快了10倍。

total+=log(mass*density)/(i+1)可能会缩短几毫秒,但没有什么值得注意的。如果您只是将
log
计算移出循环(这实际上是
func\u fast
函数所做的不同之处)…事实上,如果我按照我在这里写的做(预先计算了
log(mass*density)
的话,“slow”函数比“fast”函数快20%左右。这个问题已经在code Review上重新提出:我不能使用numpy,因为它是一个外部模块。:)
import numpy as np

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