旧版随机数生成#

RandomState 提供了对旧版生成器的访问.此生成器被认为是冻结的,不会再进行改进.保证它产生的值与 NumPy v1.16 的最终版本相同.这些都依赖于 Box-Muller 正态分布或逆 CDF 指数或伽马分布.只有当必须拥有与以前版本的 NumPy 产生的值完全相同的随机数时,才应使用此类.

RandomState 向状态添加了额外的信息,当使用 Box-Muller 正态分布时需要这些信息,因为这些分布是成对产生的.当访问状态时,使用 RandomState.get_state 非常重要,而不是使用底层的位生成器 state ,以便保存这些额外的值.

尽管我们提供了 MT19937 BitGenerator 以独立于 RandomState 使用,但请注意,它的默认种子使用 SeedSequence 而不是旧版种子算法. RandomState 将使用旧版种子算法.使用旧版种子算法的方法目前是私有的,因为使用它们的主要原因只是为了实现 RandomState .但是,可以使用 RandomState 的状态重置 MT19937 的状态:

from numpy.random import MT19937
from numpy.random import RandomState

rs = RandomState(12345)
mt19937 = MT19937()
mt19937.state = rs.get_state()
rs2 = RandomState(mt19937)

# Same output
rs.standard_normal()
rs2.standard_normal()

rs.random()
rs2.random()

rs.standard_exponential()
rs2.standard_exponential()
class numpy.random.RandomState(seed=None)#

用于慢速梅森旋转伪随机数生成器的容器.考虑使用带有 Generator 容器的不同 BitGenerator .

RandomStateGenerator 公开了一些用于生成从各种概率分布中提取的随机数的方法.除了特定于分布的参数之外,每种方法都采用一个关键字参数 size ,默认为 None .如果 sizeNone ,则生成并返回单个值.如果 size 是一个整数,则返回一个填充了生成值的一维数组.如果 size 是一个元组,则填充并返回具有该形状的数组.

兼容性保证

使用固定种子和使用相同参数对“RandomState”方法进行的一系列固定调用的固定位生成器,总会产生相同的结果(直到舍入误差),除非这些值不正确. RandomState 实际上是冻结的,只会接收 Numpy 内部更改所需的更新.更实质性的更改(包括算法改进)保留给 Generator .

参数:
seed{None, int, array_like, BitGenerator}, 可选

用于初始化伪随机数生成器的随机种子或一个实例化的 BitGenerator.如果是一个整数或数组,则用作 MT19937 BitGenerator 的种子.这些值可以是 0 到 232 - 1 之间的任何整数(包括端点),此类整数的数组(或其他序列),或 None (默认值).如果 seedNone ,则 MT19937 BitGenerator 通过从 /dev/urandom (或 Windows 等效项) 读取数据(如果可用)或从时钟中获取种子来初始化.

注释

Python stdlib 模块 “random” 也包含一个梅森旋转伪随机数生成器,它有许多与 RandomState 中可用的方法相似的方法. RandomState 除了可以识别 NumPy 之外,还具有提供更多概率分布可供选择的优势.

播种和状态#

get_state ([legacy])

返回一个元组,表示生成器的内部状态.

set_state (state)

从一个元组设置生成器的内部状态.

seed ([seed])

重新设置一个遗留的 MT19937 BitGenerator 的种子

简单随机数据#

rand (d0, d1, ..., dn)

给定形状的随机值.

randn (d0, d1, ..., dn)

从“标准正态”分布中返回一个(或多个)样本.

randint (low[, high, size, dtype])

low (包含) 到 high (不包含) 返回随机整数.

random_integers (low[, high, size])

numpy.int_ 类型的随机整数,包含 lowhigh ,包括边界值.

random_sample ([size])

返回半开区间 [0.0, 1.0) 中的随机浮点数.

choice (a[, size, replace, p])

从给定的 1-D 数组生成一个随机样本

bytes (length)

返回随机字节.

排列#

shuffle (x)

通过混排其内容来就地修改序列.

permutation (x)

随机置换一个序列,或者返回一个置换后的范围.

分布#

beta (a, b[, size])

从 Beta 分布中抽取样本.

binomial (n, p[, size])

从二项分布中抽取样本.

chisquare (df[, size])

从卡方分布中抽取样本.

dirichlet (alpha[, size])

从 Dirichlet 分布中抽取样本.

exponential ([scale, size])

从指数分布中抽取样本.

f (dfnum, dfden[, size])

从 F 分布中抽取样本.

gamma (shape[, scale, size])

从 Gamma 分布 中抽取样本.

geometric (p[, size])

从几何分布中抽取样本.

gumbel ([loc, scale, size])

从 Gumbel 分布中抽取样本.

hypergeometric (ngood, nbad, nsample[, size])

从超几何分布中抽取样本.

laplace ([loc, scale, size])

从具有指定位置(或均值)和比例(衰减)的 Laplace 或双指数分布中抽取样本.

logistic ([loc, scale, size])

从 logistic 分布中抽取样本.

lognormal ([mean, sigma, size])

从对数正态分布中抽取样本.

logseries (p[, size])

从对数级数分布中抽取样本.

multinomial (n, pvals[, size])

从多项分布中抽取样本.

multivariate_normal (mean, cov[, size, ...])

从多元正态分布中抽取随机样本.

negative_binomial (n, p[, size])

从负二项分布中抽取 samples.

noncentral_chisquare (df, nonc[, size])

从非中心卡方分布中抽取样本.

noncentral_f (dfnum, dfden, nonc[, size])

从非中心 F 分布中抽取样本.

normal ([loc, scale, size])

从正态(高斯)分布中抽取随机样本.

pareto (a[, size])

从具有指定形状的 Pareto II 或 Lomax 分布中抽取样本.

poisson ([lam, size])

从泊松分布中抽取样本.

power (a[, size])

从具有正指数 a - 1 的幂分布中抽取 [0, 1] 中的样本.

rayleigh ([scale, size])

从瑞利分布中抽取样本.

standard_cauchy ([size])

从 mode = 0 的标准柯西分布中抽取样本.

standard_exponential ([size])

从标准指数分布中抽取样本.

standard_gamma (shape[, size])

从标准 Gamma 分布中抽取样本.

standard_normal ([size])

从标准正态分布(平均值=0,标准差=1)中抽取样本.

standard_t (df[, size])

从具有 df 自由度的标准学生 t 分布中抽取样本.

triangular (left, mode, right[, size])

从区间 [left, right] 上的三角形分布中抽取样本.

uniform ([low, high, size])

从均匀分布中抽取样本.

vonmises (mu, kappa[, size])

从 von Mises 分布中抽取样本.

wald (mean, scale[, size])

从 Wald 或逆高斯分布中抽取样本.

weibull (a[, size])

从 Weibull 分布中抽取样本.

zipf (a[, size])

从 Zipf 分布中抽取样本.

numpy.random 中的函数#

上面的许多 RandomState 方法都作为 numpy.random 中的函数导出.不建议使用此方法,因为它通过全局 RandomState 实例实现,而这在以下两个方面是不建议的:

  • 它使用全局状态,这意味着结果会随着代码的变化而变化

  • 它使用 RandomState 而不是更现代的 Generator .

由于向后兼容的遗留原因,我们不会更改此设置.

beta (a, b[, size])

从 Beta 分布中抽取样本.

binomial (n, p[, size])

从二项分布中抽取样本.

bytes (length)

返回随机字节.

chisquare (df[, size])

从卡方分布中抽取样本.

choice (a[, size, replace, p])

从给定的 1-D 数组生成一个随机样本

dirichlet (alpha[, size])

从 Dirichlet 分布中抽取样本.

exponential ([scale, size])

从指数分布中抽取样本.

f (dfnum, dfden[, size])

从 F 分布中抽取样本.

gamma (shape[, scale, size])

从 Gamma 分布 中抽取样本.

geometric (p[, size])

从几何分布中抽取样本.

get_state ([legacy])

返回一个元组,表示生成器的内部状态.

gumbel ([loc, scale, size])

从 Gumbel 分布中抽取样本.

hypergeometric (ngood, nbad, nsample[, size])

从超几何分布中抽取样本.

laplace ([loc, scale, size])

从具有指定位置(或均值)和比例(衰减)的 Laplace 或双指数分布中抽取样本.

logistic ([loc, scale, size])

从 logistic 分布中抽取样本.

lognormal ([mean, sigma, size])

从对数正态分布中抽取样本.

logseries (p[, size])

从对数级数分布中抽取样本.

multinomial (n, pvals[, size])

从多项分布中抽取样本.

multivariate_normal (mean, cov[, size, ...])

从多元正态分布中抽取随机样本.

negative_binomial (n, p[, size])

从负二项分布中抽取 samples.

noncentral_chisquare (df, nonc[, size])

从非中心卡方分布中抽取样本.

noncentral_f (dfnum, dfden, nonc[, size])

从非中心 F 分布中抽取样本.

normal ([loc, scale, size])

从正态(高斯)分布中抽取随机样本.

pareto (a[, size])

从具有指定形状的 Pareto II 或 Lomax 分布中抽取样本.

permutation (x)

随机置换一个序列,或者返回一个置换后的范围.

poisson ([lam, size])

从泊松分布中抽取样本.

power (a[, size])

从具有正指数 a - 1 的幂分布中抽取 [0, 1] 中的样本.

rand (d0, d1, ..., dn)

给定形状的随机值.

randint (low[, high, size, dtype])

low (包含) 到 high (不包含) 返回随机整数.

randn (d0, d1, ..., dn)

从“标准正态”分布中返回一个(或多个)样本.

random ([size])

返回半开区间 [0.0, 1.0) 中的随机浮点数.

random_integers (low[, high, size])

numpy.int_ 类型的随机整数,包含 lowhigh ,包括边界值.

random_sample ([size])

返回半开区间 [0.0, 1.0) 中的随机浮点数.

ranf (args, \kwargs)

这是 random_sample 的一个别名.

rayleigh ([scale, size])

从瑞利分布中抽取样本.

sample (args, \kwargs)

这是 random_sample 的一个别名.

seed ([seed])

为单例 RandomState 实例重新设定种子.

set_state (state)

从一个元组设置生成器的内部状态.

shuffle (x)

通过混排其内容来就地修改序列.

standard_cauchy ([size])

从 mode = 0 的标准柯西分布中抽取样本.

standard_exponential ([size])

从标准指数分布中抽取样本.

standard_gamma (shape[, size])

从标准 Gamma 分布中抽取样本.

standard_normal ([size])

从标准正态分布(平均值=0,标准差=1)中抽取样本.

standard_t (df[, size])

从具有 df 自由度的标准学生 t 分布中抽取样本.

triangular (left, mode, right[, size])

从区间 [left, right] 上的三角形分布中抽取样本.

uniform ([low, high, size])

从均匀分布中抽取样本.

vonmises (mu, kappa[, size])

从 von Mises 分布中抽取样本.

wald (mean, scale[, size])

从 Wald 或逆高斯分布中抽取样本.

weibull (a[, size])

从 Weibull 分布中抽取样本.

zipf (a[, size])

从 Zipf 分布中抽取样本.