cupy.random.Generator#
- class cupy.random.Generator(bit_generator)[源代码]#
BitGenerators 的容器。
Generator提供了多种方法用于生成从各种概率分布中抽取的随机数。除了特定分布的参数外,每个方法还接受一个关键字参数 size,其默认值为None。如果 size 为None,则生成并返回一个单一值。如果 size 是一个整数,则返回一个填充了生成值的一维数组。如果 size 是一个元组,则返回一个填充了该形状的数组。函数numpy.random.default_rng()将使用 numpy 的默认 BitGenerator 实例化一个 Generator。无兼容性保证Generator不提供版本兼容性保证。特别是,随着更好的算法的发展,比特流可能会改变。- 参数:
bit_generator – (cupy.random.BitGenerator): 用作核心生成器的 BitGenerator。
方法
- beta(self, a, b, size=None, dtype=numpy.float64)#
Beta 分布。
返回从贝塔分布中抽取的样本数组。其概率密度函数定义为
\[f(x) = \frac{x^{\alpha-1}(1-x)^{\beta-1}}{B(\alpha,\beta)}。\]- 参数:
- 返回:
从 beta 分布中抽取的样本。
- 返回类型:
参见
numpy.random.Generator.beta()
- binomial(self, n, p, size=None)#
二项分布。
返回从二项分布中抽取的样本数组。其概率质量函数定义为
\[f(x) = \binom{n}{x}p^x(1-p)^{n-x}。\]- 参数:
n (int or cupy.ndarray of ints) – 分布的参数,>= 0。也接受浮点数,但它们将被截断为整数。
p (float or cupy.ndarray of floats) – 分布的参数,>= 0 且 <= 1。
size (int or tuple of ints, optional) – 输出数组的形状。如果
None(默认),当n和p都是标量时,返回一个单一值。否则,将绘制cupy.broadcast(n, p).size个样本。
- 返回:
从二项分布中抽取的样本。
- 返回类型:
参见
numpy.random.Generator.binomial()
- chisquare(self, df, size=None)#
卡方分布。
返回从卡方分布中抽取的样本数组。其概率密度函数定义为
\[f(x) = \frac{(1/2)^{k/2}}{\Gamma(k/2)}x^{k/2-1}e^{-x/2}.\]- 参数:
- 返回:
从卡方分布中抽取的样本。
- 返回类型:
参见
numpy.random.Generator.chisquare()
- dirichlet(self, alpha, size=None)#
狄利克雷分布。
返回从狄利克雷分布中抽取的样本数组。其概率密度函数定义为
\[f(x) = \frac{\Gamma(\sum_{i=1}^K\alpha_i)} {\prod_{i=1}^{K}\Gamma(\alpha_i)} \prod_{i=1}^Kx_i^{\alpha_i-1}.\]- 参数:
- 返回:
从狄利克雷分布中抽取的样本。
- 返回类型:
参见
numpy.random.Generator.dirichlet()
- exponential(self, scale=1.0, size=None)#
指数分布。
返回从指数分布中抽取的样本数组。其概率密度函数定义为
\[f(x) = \frac{1}{\beta}\exp (-\frac{x}{\beta})。\]- 参数:
- 返回:
从指数分布中抽取的样本。
- 返回类型:
参见
numpy.random.Generator.exponential()
- f(self, dfnum, dfden, size=None)#
F 分布。
返回从 f 分布中抽取的样本数组。其概率密度函数定义为
\[f(x) = \frac{1}{B(\frac{d_1}{2},\frac{d_2}{2})} \left(\frac{d_1}{d_2}\right)^{\frac{d_1}{2}} x^{\frac{d_1}{2}-1} \left(1+\frac{d_1}{d_2}x\right) ^{-\frac{d_1+d_2}{2}}.\]- 参数:
- 返回:
从 f 分布中抽取的样本。
- 返回类型:
参见
numpy.random.Generator.f()
- gamma(self, shape, scale=1.0, size=None)#
Gamma 分布。
返回从伽马分布中抽取的样本数组。其概率密度函数定义为
\[f(x) = \frac{1}{\Gamma(k)\theta^k}x^{k-1}e^{-x/\theta}。\]- 参数:
参见
numpy.random.Generator.gamma()
- geometric(self, p, size=None)#
几何分布。
返回从几何分布中抽取的样本数组。其概率质量函数定义为
\[f(x) = p(1-p)^{k-1}。\]- 参数:
p (float or cupy.ndarray of floats) – 几何分布的成功概率。
size (int or tuple of ints, optional) – 输出数组的形状。如果为
None(默认),当p是标量时返回单个值。否则,绘制p.size个样本。
- 返回:
从几何分布中抽取的样本。
- 返回类型:
参见
numpy.random.Generator.geometric()
- hypergeometric(self, ngood, nbad, nsample, size=None)#
超几何分布。
返回从超几何分布中抽取的样本数组。其概率质量函数定义为
\[f(x) = \frac{\binom{m}{n}\binom{N-m}{n-x}}{\binom{N}{n}}.\]- 参数:
- 返回:
从超几何分布中抽取的样本。
- 返回类型:
参见
numpy.random.Generator.hypergeometric()
- integers(self, low, high=None, size=None, dtype=numpy.int64, endpoint=False)#
返回一个区间内的标量或整数值数组。
返回值的每个元素都是从
[low, high)或[low, high]区间上的均匀分布独立采样的。- 参数:
- 返回:
如果 size 是
None,则采样单个整数。如果 size 是整数,则是长度为size元素的 1D 数组。否则,它是形状由size指定的数组。- 返回类型:
int or cupy.ndarray of ints
参见
numpy.random.Generator.integers()
- logseries(self, p, size=None)#
日志系列分布。
返回从对数级数分布中抽取的样本数组。其概率质量函数定义为
\[f(x) = \frac{-p^x}{x\ln(1-p)}。\]- 参数:
p (float or cupy.ndarray of floats) – 对数级数分布的参数。必须在范围 (0, 1) 内。
size (int or tuple of ints, optional) – 输出数组的形状。如果为
None(默认),当p是标量时返回单个值。否则,绘制p.size个样本。
- 返回:
从日志系列分布中抽取的样本。
- 返回类型:
参见
numpy.random.Generator.logseries()
- poisson(self, lam=1.0, size=None)#
泊松分布。
返回从泊松分布中抽取的样本数组。其概率质量函数定义为
\[f(x) = \frac{\lambda^xe^{-\lambda}}{x!}.\]- 参数:
- 返回:
从泊松分布中抽取的样本。
- 返回类型:
参见
numpy.random.Generator.poisson()
- power(self, a, size=None)#
电力分配。
返回从幂分布中抽取的样本数组。其概率密度函数定义为
\[f(x) = ax^{a-1}。\]- 参数:
- 返回:
从电源分配中抽取的样本。
- 返回类型:
参见
numpy.random.Generator.power()
- random(self, size=None, dtype=numpy.float64, out=None)#
返回半开区间 [0.0, 1.0) 内的随机浮点数。
结果来自指定区间内的“连续均匀”分布。要采样 \(Unif[a, b), b > a\),将 random 的输出乘以 (b-a) 并加上 a:
(b - a) * random() + a
- 参数:
dtype – 数据类型说明符。
out (cupy.ndarray, optional) – 如果指定,值将被写入此数组
- 返回:
从 [0, 1) 区间均匀抽取的样本
- 返回类型:
参见
numpy.random.Generator.random()
- standard_exponential(self, size=None, dtype=numpy.float64, method='inv', out=None)#
标准指数分布。
返回从标准指数分布中抽取的样本数组。其概率密度函数定义为
\[f(x) = e^{-x}。\]- 参数:
dtype – 数据类型说明符。仅允许
numpy.float32和numpy.float64类型。method (str) – 采样方法。目前仅支持
'inv',即从默认的逆CDF进行采样。out (cupy.ndarray, optional) – 如果指定,值将被写入此数组
- 返回:
从标准指数分布中抽取的样本。
- 返回类型:
参见
numpy.random.Generator.standard_exponential()
- standard_gamma(self, shape, size=None, dtype=numpy.float64, out=None)#
标准伽马分布。
返回从标准伽马分布中抽取的样本数组。其概率密度函数定义为
\[f(x) = \frac{1}{\Gamma(k)}x^{k-1}e^{-x}。\]- 参数:
dtype – 数据类型说明符。
out (cupy.ndarray, optional) – 如果指定,值将被写入此数组
参见
numpy.random.Generator.standard_gamma()
- standard_normal(self, size=None, dtype=numpy.float64, out=None)#
标准正态分布。
返回从标准正态分布中抽取的样本数组。
- 参数:
dtype – 数据类型说明符。
out (cupy.ndarray, optional) – 如果指定,值将被写入此数组
- 返回:
从标准正态分布中抽取的样本。
- 返回类型:
参见
numpy.random.Generator.standard_normal()
- uniform(self, low=0.0, high=1.0, size=None, dtype=numpy.float64)#
从均匀分布中抽取样本。样本在半开区间
[low, high)上均匀分布(包括 low,但不包括 high)。换句话说,给定区间内的任何值被 uniform 抽中的概率是相等的。- 参数:
low (float or array_like of floats, optional) – 输出区间的下界。所有生成的值都将大于或等于低。默认值为 0。
high (float or array_like of floats) – 输出区间的上边界。生成的所有值都将小于 high。由于方程
low + (high-low) * random()中的浮点数舍入,高限制可能包含在返回的浮点数数组中。high - low 必须是非负的。默认值是 1.0。size (int or tuple of ints, optional) – 输出形状。如果给定的形状是,例如,
(m, n, k),那么会抽取m * n * k个样本。如果 size 是None``(默认),当 ``low和high都是标量时,返回一个单一值。否则,会抽取cupy.broadcast(low, high).size个样本。
- 返回:
out – 从参数化的均匀分布中抽取的样本。
- 返回类型:
ndarray or scalar
参见
-meth:numpy.random.Generator.uniform
-meth:integers: 离散均匀分布,生成整数。
-meth:random: 均匀分布在
[0, 1)上的浮点数。
- __eq__(value, /)#
返回 self==value。
- __ne__(value, /)#
返回 self!=value。
- __lt__(value, /)#
返回 self<value。
- __le__(value, /)#
返回 self<=value。
- __gt__(value, /)#
返回 self>value。
- __ge__(value, /)#
返回 self>=value。