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))