NumPy 中的指数分布详解

指数分布是一种连续概率分布,用于描述泊松过程中两个事件之间的时间间隔,其中事件的发生是独立的,且以恒定的平均速率进行。NumPy 为我们提供了一种简单的方法来生成这样的随机数值:numpy.random.exponential()

示例: 这个示例向我们展示了如何使用默认参数生成一个指数分布的随机值。

Python


CODEBLOCK_6c4490d7

输出结果

0.5339358426948082

解释:

  • np.random.exponential() 会生成一个服从指数分布的数值。
  • 由于我们没有传递任何参数,它默认使用 scale = 1

语法

> numpy.random.exponential(scale=1.0, size=None)

参数说明

  • scale: 事件发生速率的倒数(即 β = 1/λ)。
  • size: 输出数组的形状。

更多示例

示例 1: 在这个示例中,我们将使用自定义的 scale 参数来生成一个指数分布随机值。

Python


CODEBLOCK_4a22ffaf

输出结果

0.8177243559186411

解释:

  • scale=2 意味着生成的数值分布会更加分散。
  • 变量 x 中保存了一个单一的指数分布随机数。
  • 较大的 scale 值会使分布图看起来更“长”且更“宽”。

示例 2: 让我们来看看如何从指数分布中生成五个随机数。

Python


CODEBLOCK_0581ac39

输出结果

[2.14106221 1.93254045 0.03957526 0.58763751 1.12814399]

解释

  • scale=1.5 代表一个中等的分散程度。
  • size=5 指定返回 5 个数值。
  • 变量 INLINECODEef43d519 存储了数组,形式类似于 INLINECODE8356a028。

可视化指数分布

通过可视化生成的数值,我们可以更直观地理解其分布规律。下面是一个示例,展示了如何绘制使用 numpy.random.exponential 生成的随机数的直方图。

Python


CODEBLOCK_243a1bf8

输出结果

!ExponentialDistributionPlotExponenetial Distribution Plot

解释:

  • s = 2 设置了分布的分散范围(缩放比例)。
  • n = 800 生成了足够多的数据点,以使直方图更加平滑。
  • sns.histplot() 函数展示了两部分内容:柱状图 -> 模拟的实际数据 和 曲线 (kde) -> 平滑的理论形状。
  • 我们可以看到,图形在 0 附近的频率很高,并伴随着一条长长的下降尾迹,这正是指数分布的典型特征。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/49239.html
点赞
0.00 平均评分 (0% 分数) - 0