maxframe.tensor.random.poisson#

maxframe.tensor.random.poisson(lam=1.0, size=None, chunk_size=None, gpu=None, dtype=None)[源代码]#

从泊松分布中抽取样本。

泊松分布是二项分布在大 N 时的极限。

参数:
  • lam (float or array_like of floats) -- 区间的期望值,应大于等于 0。期望值序列必须能在请求的形状上广播。

  • size (int or tuple of ints, optional) -- 输出形状。如果给定形状如 (m, n, k),则抽取 m * n * k 个样本。如果 size 为 None``(默认值),当 ``lam 为标量时返回单个值。否则抽取 mt.array(lam).size 个样本。

  • chunk_size (int or tuple of int or tuple of ints, optional) -- 每个维度上期望的块大小

  • gpu (bool, optional) -- 如果为 True,则将张量分配在 GPU 上,默认为 False

  • dtype (data-type, optional) -- 返回张量的数据类型。

返回:

out -- 从参数化的泊松分布中抽取的样本。

返回类型:

Tensor or scalar

备注

泊松分布

\[f(k; \lambda)=\frac{\lambda^k e^{-\lambda}}{k!}\]

对于期望间隔为 \(\lambda\) 的事件,泊松分布 \(f(k; \lambda)\) 描述了在观测间隔 \(\lambda\) 内发生 \(k\) 个事件的概率。

由于输出受限于 C 语言 long 类型的范围,当 lam 接近其最大可表示值的 10 个标准差以内时,将引发 ValueError。

引用

示例

从分布中抽取样本:

>>> import maxframe.tensor as mt
>>> s = mt.random.poisson(5, 10000)

显示样本的直方图:

>>> import matplotlib.pyplot as plt
>>> count, bins, ignored = plt.hist(s.execute(), 14, normed=True)
>>> plt.show()

分别对 lambda 为 100 和 500 抽取各 100 个值:

>>> s = mt.random.poisson(lam=(100., 500.), size=(100, 2))