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


Python numpy random.mtrand.RandomState.logseries用法及代码示例


用法:

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(k) = \frac{-p^k}{k \ln(1-p)},

其中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()
../../../_images/numpy-random-mtrand-RandomState-logseries-1.png

相关用法


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