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

时间:2011-03-17 22:23:10

标签: python random numpy exponential-distribution

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

2 个答案:

答案 0 :(得分:4)

如果random.expovariate()的任何内容不符合您的需求,那么推出自己的版本也很容易:

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

仅仅为此功能依赖NumPy似乎有点过分。

请注意,此函数接受平均beta作为参数,NumPy版本也是如此,而lambd的参数random.expovariate()则是beta的倒数。< / p>

答案 1 :(得分:3)

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

  

<强> random.expovariate(lambd)

     

指数分布。 lambd是1.0   除以所需的平均值。这应该   非零。 (参数将是   称为“lambda”,但那是一个   Python中的保留字。)返回   值范围从0到正   如果lambd是积极的,那么无穷大   从负无穷大到0如果是lambd   是否定的。