cupy.random.Generator#
- class cupy.random.Generator(bit_generator)[source]#
BitGenerator 的容器。
Generator
提供了多种方法,用于生成从各种概率分布中抽取的随机数。除了特定分布的参数外,每个方法都接受一个关键字参数 size,其默认值为None
。如果 size 为None
,则生成并返回一个单一值。如果 size 是一个整数,则返回一个填充了生成值的 1 维数组。如果 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 分布。
返回从 beta 分布中抽取的样本数组。其概率密度函数定义为
\[f(x) = \frac{x^{\alpha-1}(1-x)^{\beta-1}}{B(\alpha,\beta)}.\]- 参数:
- 返回:
从 beta 分布中抽取的样本。
- 返回类型:
- binomial(self, n, p, size=None)#
二项分布。
返回从二项分布中抽取的样本数组。其概率质量函数定义为
\[f(x) = \binom{n}{x}p^x(1-p)^(n-x).\]- 参数:
n (int 或 cupy.ndarray,类型为 ints) – 分布的参数,>= 0。也接受浮点数,但它们将被截断为整数。
p (float 或 cupy.ndarray,类型为 floats) – 分布的参数,>= 0 且 <= 1。
size (int 或 整数元组, 可选) – 输出数组的形状。如果为
None
(默认),则在n
和p
均为标量时返回单个值。否则,将抽取cupy.broadcast(n, p).size
个样本。
- 返回:
从二项分布中抽取的样本。
- 返回类型:
- chisquare(self, df, size=None)#
卡方分布。
返回从卡方分布中抽取的样本数组。其概率密度函数定义为
\[f(x) = \frac{(1/2)^{k/2}}{\Gamma(k/2)}x^{k/2-1}e^{-x/2}.\]- 参数:
- 返回:
从卡方分布中抽取的样本。
- 返回类型:
- dirichlet(self, alpha, size=None)#
Dirichlet 分布。
返回从 Dirichlet 分布中抽取的样本数组。其概率密度函数定义为
\[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}.\]- 参数:
- 返回:
从 Dirichlet 分布中抽取的样本。
- 返回类型:
- exponential(self, scale=1.0, size=None)#
指数分布。
返回从指数分布中抽取的样本数组。其概率密度函数定义为
\[f(x) = \frac{1}{\beta}\exp (-\frac{x}{\beta}).\]- 参数:
- 返回:
从指数分布中抽取的样本。
- 返回类型:
- 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 分布中抽取的样本。
- 返回类型:
- gamma(self, shape, scale=1.0, size=None)#
Gamma 分布。
返回从 gamma 分布中抽取的样本数组。其概率密度函数定义为
\[f(x) = \frac{1}{\Gamma(k)\theta^k}x^{k-1}e^{-x/\theta}.\]
- geometric(self, p, size=None)#
几何分布。
返回从几何分布中抽取的样本数组。其概率质量函数定义为
\[f(x) = p(1-p)^{k-1}.\]- 参数:
p (float 或 cupy.ndarray,类型为 floats) – 几何分布的成功概率。
size (int 或 整数元组, 可选) – 输出数组的形状。如果为
None
(默认),则在p
为标量时返回单个值。否则,将抽取p.size
个样本。
- 返回:
从几何分布中抽取的样本。
- 返回类型:
- hypergeometric(self, ngood, nbad, nsample, size=None)#
超几何分布。
返回从超几何分布中抽取的样本数组。其概率质量函数定义为
\[f(x) = \frac{\binom{m}{n}\binom{N-m}{n-x}}{\binom{N}{n}}.\]
- integers(self, low, high=None, size=None, dtype=numpy.int64, endpoint=False)#
返回一个标量或一个整数值数组,其范围在一个区间内。
返回值的每个元素都是从区间
[low, high)
或[low, high]
上的均匀分布中独立采样的。- 参数:
- 返回:
如果 size 为
None
,则返回单个整数样本。如果 size 为整数,则返回长度为size
的 1 维数组。否则,返回形状由size
指定的数组。- 返回类型:
int 或 cupy.ndarray,类型为 ints
- logseries(self, p, size=None)#
对数序列分布。
返回从对数序列分布中抽取的样本数组。其概率质量函数定义为
\[f(x) = \frac{-p^x}{x\ln(1-p)}.\]- 参数:
p (float 或 cupy.ndarray,类型为 floats) – 对数序列分布的参数。必须在 (0, 1) 范围内。
size (int 或 整数元组, 可选) – 输出数组的形状。如果为
None
(默认),则在p
为标量时返回单个值。否则,将抽取p.size
个样本。
- 返回:
从对数序列分布中抽取的样本。
- 返回类型:
- poisson(self, lam=1.0, size=None)#
泊松分布。
返回从泊松分布中抽取的样本数组。其概率质量函数定义为
\[f(x) = \frac{\lambda^xe^{-\lambda}}{x!}.\]- 参数:
- 返回:
从泊松分布中抽取的样本。
- 返回类型:
- power(self, a, size=None)#
幂分布。
返回从幂分布中抽取的样本数组。其概率密度函数定义为
\[f(x) = ax^{a-1}.\]- 参数:
- 返回:
从幂分布中抽取的样本。
- 返回类型:
- 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, 可选) – 如果指定,值将写入此数组
- 返回:
从 [0, 1) 区间均匀抽取的样本
- 返回类型:
- 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, 可选) – 如果指定,值将写入此数组
- 返回:
从标准指数分布中抽取的样本。
- 返回类型:
- standard_gamma(self, shape, size=None, dtype=numpy.float64, out=None)#
标准 gamma 分布。
返回从标准 gamma 分布中抽取的样本数组。其概率密度函数定义为
\[f(x) = \frac{1}{\Gamma(k)}x^{k-1}e^{-x}.\]- 参数:
dtype – 数据类型说明符。
out (cupy.ndarray, 可选) – 如果指定,值将写入此数组
- standard_normal(self, size=None, dtype=numpy.float64, out=None)#
标准正态分布。
返回从标准正态分布中抽取的样本数组。
- 参数:
dtype – 数据类型说明符。
out (cupy.ndarray, 可选) – 如果指定,值将写入此数组
- 返回:
从标准正态分布中抽取的样本。
- 返回类型:
- uniform(self, low=0.0, high=1.0, size=None, dtype=numpy.float64)#
从均匀分布中抽取样本。样本均匀分布在半开区间
[low, high)
(包含 low,但不包含 high) 上。换句话说,给定区间内的任何值被 uniform 抽取的可能性相等。由于等式low + (high-low) * random()
中的浮点舍入,返回的浮点数数组可能包含 high 界限。high - low 必须是非负数。默认值为 1.0。- 参数:
low (float 或 类似数组,类型为 floats, 可选) – 输出区间的下边界。生成的所有值将大于或等于 low。默认值为 0。
high (float 或 类似数组,类型为 floats) – 输出区间的上边界。生成的所有值将小于 high。由于等式
low + (high-low) * random()
中的浮点舍入,返回的浮点数数组可能包含 high 界限。high - low 必须是非负数。默认值为 1.0。size (int 或 整数元组, 可选) – 输出形状。如果给定的形状是例如
(m, n, k)
,则抽取m * n * k
个样本。如果 size 为None
(默认),则在low
和high
均为标量时返回单个值。否则,将抽取cupy.broadcast(low, high).size
个样本。
- 返回:
out – 从参数化均匀分布中抽取的样本。
- 返回类型:
ndarray 或 标量
另请参阅
-
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。