用法:
RandomState.logseries(p, size=None)
从对数级数分布中抽取样本。
从具有指定形状参数0 <的对数 Series 分布中抽取样本
p
<1。参数: - p: : float 或 array_like of floats
分布的形状参数。必须在(0,1)范围内。
- size: : int 或 tuple of ints, 可选参数
输出形状。如果给定的形状是
(m, n, k)
, 然后m * n * k
抽取样品。如果尺寸是None
(默认),如果返回一个值p
是标量。除此以外,np.array(p).size
抽取样品。
返回值: - out: : ndarray或标量
从参数化对数级数分布中抽取样本。
注意:
对数序列分布的概率密度为
其中p =概率。
对数级数分布通常用于表示物种的丰富度和发生率,最早由Fisher,Corbet和Williams于1943年提出[2]。它也可以用来模拟汽车中的乘员人数[3]。
参考文献:
[1] 布萨斯(Martin A.); Culver,Stephen J.,通过事件的对数序列分布了解区域物种多样性:生物多样性研究多样性与分布,第5卷,第5期,1999年9月,第187-195(9)页。 [2] Fisher,R.A.,A.S. Corbet和C.B. Williams。 1943年。在动物种群的随机样本中,物种数量与个体数量之间的关系。动物生态学杂志,12:42-58。 [3] D.J.Hand,F.Daly,D.Lunn,E.Ostrowski,《小数据集手册》,CRC出版社,1994年。 [4] 维基百科,“Logarithmic distribution”,https://en.wikipedia.org/wiki/Logarithmic_distribution 例子:
从分布中抽取样本:
>>> a = .6 >>> s = np.random.logseries(a, 10000) >>> import matplotlib.pyplot as plt >>> count, bins, ignored = plt.hist(s)
#针对分布图
>>> def logseries(k, p): ... return -p**k/(k*np.log(1-p)) >>> plt.plot(bins, logseries(bins, a)*count.max()/ ... logseries(bins, a).max(), 'r') >>> plt.show()
相关用法
注:本文由纯净天空筛选整理自 numpy.random.mtrand.RandomState.logseries。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。