【发布时间】:2011-07-17 18:57:29
【问题描述】:
我已经使用 Numpy 的 numpy.random.exponential 函数有一段时间了。我现在看到 Python 的 random 模块有很多我不知道的功能。它有什么东西可以代替numpy.random.exponential吗?从我的项目中删除numpy 要求会很好。
【问题讨论】:
标签: python random numpy exponential-distribution
我已经使用 Numpy 的 numpy.random.exponential 函数有一段时间了。我现在看到 Python 的 random 模块有很多我不知道的功能。它有什么东西可以代替numpy.random.exponential吗?从我的项目中删除numpy 要求会很好。
【问题讨论】:
标签: python random numpy exponential-distribution
http://docs.python.org/library/random.html#random.expovariate
random.expovariate(lambd)
指数分布。羔羊是 1.0 除以所需的平均值。这应该 非零。 (参数将是 称为“lambda”,但这是一个 Python 中的保留字。)返回 值范围从 0 到正 如果 lambda 为正,则无穷大,并且 如果 lambd 从负无穷到 0 是否定的。
【讨论】:
如果random.expovariate() 的任何内容不符合您的需求,也可以轻松推出您自己的版本:
def exponential(beta):
return -beta * math.log(1.0 - random.random())
仅仅为了这个功能而依赖 NumPy 似乎有点矫枉过正。
请注意,此函数接受均值 beta 作为参数,NumPy 版本也是如此,而 random.expovariate() 的参数 lambd 是 beta 的倒数。
【讨论】: