【问题标题】:Does Python's random module have a substitute for numpy.random.exponential?Python 的 random 模块是否可以替代 numpy.random.exponential?
【发布时间】:2011-07-17 18:57:29
【问题描述】:

我已经使用 Numpy 的 numpy.random.exponential 函数有一段时间了。我现在看到 Python 的 random 模块有很多我不知道的功能。它有什么东西可以代替numpy.random.exponential吗?从我的项目中删除numpy 要求会很好。

【问题讨论】:

    标签: python random numpy exponential-distribution


    【解决方案1】:

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

    random.expovariate(lambd)

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

    【讨论】:

      【解决方案2】:

      如果random.expovariate() 的任何内容不符合您的需求,也可以轻松推出您自己的版本:

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

      仅仅为了这个功能而依赖 NumPy 似乎有点矫枉过正。

      请注意,此函数接受均值 beta 作为参数,NumPy 版本也是如此,而 random.expovariate() 的参数 lambdbeta 的倒数。

      【讨论】:

        猜你喜欢
        • 2016-09-18
        • 2015-12-12
        • 1970-01-01
        • 1970-01-01
        • 2014-06-16
        • 2010-10-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多