当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python numpy Generator.weibull用法及代码示例


本文简要介绍 python 语言中 numpy.random.Generator.weibull 的用法。

用法:

random.Generator.weibull(a, size=None)

从 Weibull 分布中抽取样本。

从具有给定形状参数 a 的 1 参数 Weibull 分布中抽取样本。

这里,U 是从 (0,1] 上的均匀分布中得出的。

更常见的 2 参数 Weibull,包括比例参数 只是

参数

a 浮点数或类似数组的浮点数

分布的形状参数。必须是非负数。

size int 或整数元组,可选

输出形状。例如,如果给定的形状是 (m, n, k) ,则绘制 m * n * k 样本。如果 size 为 None(默认),如果 a 是标量,则返回单个值。否则,将抽取np.array(a).size 样本。

返回

out ndarray 或标量

从参数化的 Weibull 分布中抽取样本。

注意

Weibull(或最小值的 III 型渐近极值分布、SEV III 型或Rosin-Rammler 分布)是用于建模极值问题的一类广义极值 (GEV) 分布之一。此类包括 Gumbel 和 Frechet 分布。

Weibull 分布的概率密度为

其中 是形状, 是比例。

该函数在 处有其峰值(模式)。

a = 1 时,威布尔分布减少为 index 分布。

参考

1

Waloddi Weibull,皇家技术大学,斯德哥尔摩,1939 年“材料强度的统计理论”,Ingeniorsvetenskapsakademiens Handlingar Nr 151,1939 年,Generalstabens Litografiska Anstalts Forlag,斯德哥尔摩。

2

Waloddi Weibull,“广泛适用的统计分布函数”,应用力学杂志 ASME 论文 1951。

3

维基百科,“Weibull distribution”,https://en.wikipedia.org/wiki/Weibull_distribution

例子

从分布中抽取样本:

>>> rng = np.random.default_rng()
>>> a = 5. # shape
>>> s = rng.weibull(a, 1000)

显示样本的直方图以及概率密度函数:

>>> import matplotlib.pyplot as plt
>>> x = np.arange(1,100.)/50.
>>> def weib(x,n,a):
...     return (a / n) * (x / n)**(a - 1) * np.exp(-(x / n)**a)
>>> count, bins, ignored = plt.hist(rng.weibull(5.,1000))
>>> x = np.arange(1,100.)/50.
>>> scale = count.max()/weib(x, 1., 5.).max()
>>> plt.plot(x, weib(x, 1., 5.)*scale)
>>> plt.show()
numpy-random-Generator-weibull-1.png

相关用法


注:本文由纯净天空筛选整理自numpy.org大神的英文原创作品 numpy.random.Generator.weibull。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。