遗留的随机生成#

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

RandomState 在状态中添加了额外信息,这在使用 Box-Muller 正态分布时是必需的,因为这些正态分布是成对生成的.在访问状态时,重要的是使用 RandomState.get_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)#

用于慢速梅森旋转伪随机数生成器的容器.建议使用不同的 BitGenerator 和 Generator 容器.

RandomStateGenerator 提供了多种方法用于生成从各种概率分布中抽取的随机数.除了分布特定的参数外,每个方法还接受一个关键字参数 size,默认为 None.如果 sizeNone,则生成并返回一个单一值.如果 size 是整数,则返回一个填充了生成值的 1-D 数组.如果 size 是元组,则返回一个填充了该形状的数组.

Compatibility Guarantee

使用固定种子和固定的一系列对 ‘RandomState’ 方法调用且使用相同参数的固定比特生成器,在舍入误差范围内总是会产生相同的结果,除非值不正确.`RandomState` 实际上已被冻结,只会接收由 Numpy 内部变化所需的更新.更实质性的变化,包括算法改进,保留给 Generator.

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

用于初始化伪随机数生成器的随机种子或一个实例化的 BitGenerator.如果是一个整数或数组,则用作 MT19937 BitGenerator 的种子.值可以是 0 到 2**32 - 1 之间的任何整数,这样的整数数组(或其他序列),或 None``(默认值).如果 `seed` ``None,则 MT19937 BitGenerator 通过从 ``/dev/urandom``(或 Windows 类似物)读取数据(如果可用)或从时钟获取种子来初始化.

备注

Python 标准库模块 “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 之间,包括 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])

从具有指定位置(或均值)和尺度(衰减)的拉普拉斯或双指数分布中抽取样本.

logistic([loc, scale, size])

从逻辑分布中抽取样本.

lognormal([mean, sigma, size])

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

logseries(p[, size])

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

multinomial(n, pvals[, size])

从多项分布中抽取样本.

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

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

negative_binomial(n, p[, size])

从负二项分布中抽取样本.

noncentral_chisquare(df, nonc[, size])

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

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

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

normal([loc, scale, size])

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

pareto(a[, size])

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

poisson([lam, size])

从泊松分布中抽取样本.

power(a[, size])

从指数为正的 a - 1 的幂分布中,在 [0, 1] 范围内抽取样本.

rayleigh([scale, size])

从瑞利分布中抽取样本.

standard_cauchy([size])

从模式为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])

从具有指定位置(或均值)和尺度(衰减)的拉普拉斯或双指数分布中抽取样本.

logistic([loc, scale, size])

从逻辑分布中抽取样本.

lognormal([mean, sigma, size])

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

logseries(p[, size])

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

multinomial(n, pvals[, size])

从多项分布中抽取样本.

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

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

negative_binomial(n, p[, size])

从负二项分布中抽取样本.

noncentral_chisquare(df, nonc[, size])

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

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

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

normal([loc, scale, size])

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

pareto(a[, size])

从具有指定形状的帕累托 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 之间,包括 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])

从模式为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分布中抽取样本.