numpy.random.RandomState.logseries¶
方法
-
RandomState.
logseries
(p, size=None)¶ 从对数序列分布中提取样本。
从具有指定形状参数0的对数序列分布中提取样本<
p
< 1。参数: - p : 浮点数或类似浮点数的数组
分布的形状参数。必须在范围(0,1)内。
- size : int或int的元组,可选
输出形状。如果给定的形状是,例如,
(m, n, k)
然后m * n * k
取样。如果尺寸是None
(默认),如果p
是标量。否则,np.array(p).size
取样。
返回: - out : ndarray或scalar
从参数化对数序列分布中提取样本。
参见
scipy.stats.logser
- 概率密度函数、分布或累积密度函数等。
笔记
对数序列分布的概率密度为
p(k)=frac-p^k kln(1-p),
其中p=概率。
对数序列分布常被用来表示物种丰富度和发生率,这是Fisher、Corbet和Williams于1943年首次提出的。 [2] . 它也可以用来模拟在汽车中看到的乘客数量。 [3] .
工具书类
[1] Buzas,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] 维基百科,“对数分布”,https://en.wikipedia.org/wiki/logaritic_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*log(1-p)) >>> plt.plot(bins, logseries(bins, a)*count.max()/ logseries(bins, a).max(), 'r') >>> plt.show()