本文简要介绍 python 语言中 numpy.random.Generator.hypergeometric
的用法。
用法:
random.Generator.hypergeometric(ngood, nbad, nsample, size=None)
从超几何分布中抽取样本。
样本是从具有指定参数的超几何分布中抽取的,好(做出好的选择的方法),不好(做出错误选择的方法),以及样本(抽样的项目数,小于等于总和
ngood + nbad
)。- ngood: int 或 数组 整数
做出良好选择的方法的数量。必须为非负数且小于 10**9。
- nbad: int 或 数组 整数
做出错误选择的方法的数量。必须为非负数且小于 10**9。
- nsample: int 或 数组 整数
抽样的项目数。必须是非负数且小于
ngood + nbad
。- size: int 或整数元组,可选
输出形状。如果给定的形状是,例如,
(m, n, k)
, 然后m * n * k
样本被抽取。如果尺寸是None
(默认),如果返回单个值好,不好, 和样本都是标量。否则,np.broadcast(ngood, nbad, nsample).size
样本被抽取。
- out: ndarray 或标量
从参数化的超几何分布中抽取样本。每个样本是从一组 ngood 好项目和 nbad 坏项目中随机选择的大小为 nsample 的子集中的好项目的数量。
参数:
返回:
注意:
超几何分布的概率密度为
其中 和
对于 P(x) 的概率
x
抽取样品中的良好结果,g =好, b =不好, 和 n =样本.考虑一个装有黑白大理石的骨灰盒,其中 ngood 是黑色的,nbad 是白色的。如果您在没有放回的情况下绘制 nsample 个球,则超几何分布说明了绘制的样本中黑球的分布。
请注意,此分布与二项分布非常相似,只是在这种情况下,样本是在没有放回的情况下抽取的,而在二项分布的情况下,样本是有放回的(或者样本空间是无限的)。随着样本空间变大,这种分布接近二项式。
参数好和不好每个必须小于10**9.对于非常大的参数,用于计算样本的算法[4]由于浮点计算中的精度损失而崩溃。对于如此大的值,如果样本也不大,分布可以近似为二项分布,二项式(n=nsample, p=ngood/(ngood + nbad)).
参考:
伦特纳,马文,“Elementary Applied Statistics”,博格登和奎格利,1972 年。
Weisstein, Eric W. “超几何分布”。来自MathWorld-A Wolfram Web 资源。http://mathworld.wolfram.com/HypergeometricDistribution.html
维基百科,“Hypergeometric distribution”,https://en.wikipedia.org/wiki/Hypergeometric_distribution
Stadlober, Ernst,“用于生成离散随机变量的制服比例方法”,计算与应用数学杂志,31,第 181-189 页(1990 年)。
1:
2:
3:
4:
例子:
从分布中抽取样本:
>>> rng = np.random.default_rng() >>> ngood, nbad, nsamp = 100, 2, 10 # number of good, number of bad, and number of samples >>> s = rng.hypergeometric(ngood, nbad, nsamp, 1000) >>> from matplotlib.pyplot import hist >>> hist(s) # note that it is very unlikely to grab both bad items
假设你有一个装有 15 颗白色弹珠和 15 颗黑色弹珠的骨灰盒。如果你随机拉出 15 颗弹珠,其中 12 颗或更多颗是一种颜色的可能性有多大?
>>> s = rng.hypergeometric(15, 15, 15, 100000) >>> sum(s>=12)/100000. + sum(s<=3)/100000. # answer = 0.003 ... pretty unlikely!
相关用法
- Python numpy Generator.multivariate_normal用法及代码示例
- Python numpy Generator.standard_normal用法及代码示例
- Python numpy Generator.bytes用法及代码示例
- Python numpy Generator.shuffle用法及代码示例
- Python numpy Generator.choice用法及代码示例
- Python numpy Generator.random用法及代码示例
- Python numpy Generator.logseries用法及代码示例
- Python numpy Generator.uniform用法及代码示例
- Python numpy Generator.standard_t用法及代码示例
- Python numpy Generator.standard_cauchy用法及代码示例
- Python numpy Generator.normal用法及代码示例
- Python numpy Generator.poisson用法及代码示例
- Python numpy Generator.power用法及代码示例
- Python numpy Generator.geometric用法及代码示例
- Python numpy Generator.laplace用法及代码示例
- Python numpy Generator.vonmises用法及代码示例
- Python numpy Generator.noncentral_f用法及代码示例
- Python numpy Generator.gamma用法及代码示例
- Python numpy Generator.multivariate_hypergeometric用法及代码示例
- Python numpy Generator.weibull用法及代码示例
- Python numpy Generator.gumbel用法及代码示例
- Python numpy Generator.pareto用法及代码示例
- Python numpy Generator.noncentral_chisquare用法及代码示例
- Python numpy Generator.negative_binomial用法及代码示例
- Python numpy Generator.binomial用法及代码示例
注:本文由纯净天空筛选整理自numpy.org大神的英文原创作品 numpy.random.Generator.hypergeometric。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。