maxframe.tensor.random.geometric#

maxframe.tensor.random.geometric(p, size=None, chunk_size=None, gpu=None, dtype=None)[源代码]#

从几何分布中抽取样本。

伯努利试验是只有两种结果的实验:成功或失败(例如抛硬币)。几何分布模拟了为了获得成功所需进行的试验次数。因此它支持正整数,k = 1, 2, ...

几何分布的概率质量函数为

\[f(k) = (1 - p)^{k - 1} p\]

其中 p 是单次试验成功的概率。

参数:
  • p (float or array_like of floats) -- 单次试验成功的概率。

  • size (int or tuple of ints, optional) -- 输出形状。如果给定形状例如 (m, n, k),则抽取 m * n * k 个样本。如果 size 是 None``(默认),当 ``p 是标量时返回单个值。否则抽取 mt.array(p).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

示例

从几何分布中抽取一万个值,单次成功的概率为 0.35:

>>> import maxframe.tensor as mt
>>> z = mt.random.geometric(p=0.35, size=10000)

一次运行后有多少次试验成功?

>>> ((z == 1).sum() / 10000.).execute()
0.34889999999999999 #random