Python的随机模块是否可以替代numpy.random.exponential?

问题描述:

我一直在使用Numpy的numpy.random.exponential函数。我现在看到Python的random模块有许多我不知道的功能。它是否有替代numpy.random.exponential的东西?从我的项目中删除numpy要求会很好。Python的随机模块是否可以替代numpy.random.exponential?

如果关于random.expovariate()什么都不满足您的需求,它也很容易推出自己的版本:

def exponential(beta): 
    return -beta * math.log(1.0 - random.random()) 

这似乎有点矫枉过正,以对NumPy的依赖只是这个功能。

请注意,该函数接受的平均beta作为参数,一样的NumPy的版本,而参数的random.expovariate()lambdbeta倒数。

http://docs.python.org/library/random.html#random.expovariate

random.expovariate(lambd)

指数分布。 lambd是1.0 除以所需的平均值。它应该是 非零。 (该参数将是 称为“拉姆达”,但是这是在Python 保留字。)从负无穷大返回 值的范围从0到正 无穷如果lambd是正的,并且 到0,如果lambd 为负。