遗留随机生成

这个 RandomState 提供对旧生成器的访问。这台发电机被认为是冻结的,不会有进一步的改进。它保证生成与numpyv1.16的最终版本相同的值。这些都依赖于Box-Muller法线或逆CDF指数或gammas。如果这个类的先前版本是相同的,那么它应该是相同的。

RandomState 将附加信息添加到使用Box-Muller法线时所需的状态,因为这些法线是成对生成的。重要的是使用 RandomState.get_state ,而不是底层位生成器 state ,以便保存这些额外值。

尽管我们提供 MT19937 独立使用的位发生器 RandomState ,请注意,其默认种子设定使用 SeedSequence 而不是传统的种子算法。 RandomState 将使用传统的种子算法。使用遗留种子算法的方法目前是私有的,因为使用它们的主要原因只是为了实现 RandomState . 但是,可以重置 MT19937 使用 RandomState

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)

慢梅森扭曲器伪随机数生成器的容器。考虑将不同的位生成器与生成器容器一起使用。

RandomStateGenerator 公开了许多从各种概率分布中提取随机数的方法。除了特定于分布的参数外,每个方法还接受一个关键字参数 size 默认为 None .如果 sizeNone ,然后生成并返回单个值。如果 size 是一个整数,然后返回一个包含生成值的一维数组。如果 size 是一个元组,然后填充并返回具有该形状的数组。

兼容性保证

使用固定种子的固定位生成器和使用相同参数对“RandomState”方法的固定系列调用将始终产生相同的结果,直到舍入错误,除非值不正确。 RandomState 被有效冻结,并且只接收Numpy内部更改所需的更新。更多实质性的变化,包括算法的改进,被保留了下来 Generator .

参数
seed{None,int,类似数组,BitGenerator},可选

用于初始化伪随机数生成器或实例化位生成器的随机种子。如果是整数或数组,则用作MT19937位生成器的种子。值可以是0到2之间的任意整数**32-1(含2**32-1),也可以是此类整数的数组(或其他序列),或者 None (默认)。如果 seedNone 然后 MT19937 通过读取BitGenerator中的数据来初始化 /dev/urandom (或Windows模拟)如果可用,或从时钟中选择其他。

笔记

python stdlib模块“random”还包含一个mersenne twister伪随机数生成器,其方法与中提供的方法类似。 RandomState . RandomState 除了 NumPy 的意识之外,它的优点是它提供了更多的概率分布供选择。

播种和状态

get_state ()

返回表示生成器内部状态的元组。

set_state (状态)

从元组设置生成器的内部状态。

seed [自我] [, seed] )

重新设定传统MT19937位生成器的种子

简单随机数据

rand \(d0,d1,…,dn)

给定形状中的随机值。

randn \(d0,d1,…,dn)

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

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

从返回随机整数 low (包括) high (排他性)。

random_integers (低) [, high, size] )

类型的随机整数 np.int_ 之间 lowhigh 包括在内。

random_sample \ [size] )

返回半开区间内的随机浮点数[0.0,1.0]。

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

从给定的一维数组生成随机样本

bytes (长度)

返回随机字节。

排列

shuffle [(x)]

通过改变序列的内容来修改序列。

permutation [(x)]

随机排列序列,或返回排列范围。

分布

beta (a,b) [, size] )

从β分布中提取样本。

binomial (n,p) [, size] )

从二项式分布中提取样本。

chisquare (DF) [, size] )

从卡方分布中提取样本。

dirichlet α(α) [, size] )

从Dirichlet分布中提取样本。

exponential \ [scale, size] )

从指数分布中提取样本。

f \(DfNum,Dfden)[, size] )

从F分布中提取样本。

gamma [形状] [, scale, size] )

从伽马分布中提取样本。

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,pVal\) [, size] )

从多项式分布中提取样本。

multivariate_normal \(平均值),cov[, size, ...] )

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

negative_binomial (n,p) [, size] )

从负二项分布中提取样本。

noncentral_chisquare \(DFNoC) [, size] )

从非中心卡方分布中提取样本。

noncentral_f \(dfnum,dfden,非[, size] )

从非中心F分布中提取样本。

normal \ [loc, scale, size] )

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

pareto (a) [, size] )

从指定形状的Pareto II或Lomax分布中提取样品。

poisson \ [lam, size] )

从泊松分布中提取样本。

power (a) [, size] )

提取样本 [0, 1] 从正指数a-1的幂分布。

rayleigh \ [scale, size] )

从瑞利分布中提取样本。

standard_cauchy \ [size] )

从模式为0的标准柯西分布中提取样本。

standard_exponential \ [size] )

从标准指数分布中提取样本。

standard_gamma [形状] [, size] )

从标准伽马分布中提取样本。

standard_normal \ [size] )

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

standard_t (DF) [, size] )

从标准学生t分布中抽取样本 df 自由度。

triangular \(左,模式,右[, size] )

从间隔的三角形分布中提取样本 [left, right] .

uniform \ [low, high, size] )

从均匀分布中提取样品。

vonmises (Mu,Kappa) [, size] )

从von mises分布中提取样本。

wald \(平均值,比例[, size] )

从瓦尔德分布或逆高斯分布中提取样本。

weibull (a) [, size] )

从威布尔分布中提取样本。

zipf (a) [, size] )

从Zipf分布中提取样本。

中的函数 numpy.random

上面的许多RandomState方法都是作为函数导出的 numpy.random 不鼓励这种用法,因为它是通过全局 RandomState 两项罪名未被告知的情况:

  • 它使用全局状态,这意味着结果将随着代码的更改而更改

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

由于向后兼容的遗留原因,我们无法更改此设置。看到了吗 快速启动 .

beta (a,b) [, size] )

从β分布中提取样本。

binomial (n,p) [, size] )

从二项式分布中提取样本。

bytes (长度)

返回随机字节。

chisquare (DF) [, size] )

从卡方分布中提取样本。

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

从给定的一维数组生成随机样本

dirichlet α(α) [, size] )

从Dirichlet分布中提取样本。

exponential \ [scale, size] )

从指数分布中提取样本。

f \(DfNum,Dfden)[, size] )

从F分布中提取样本。

gamma [形状] [, scale, size] )

从伽马分布中提取样本。

geometric (P) [, size] )

从几何分布中提取样本。

get_state ()

返回表示生成器内部状态的元组。

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,pVal\) [, size] )

从多项式分布中提取样本。

multivariate_normal \(平均值),cov[, size, ...] )

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

negative_binomial (n,p) [, size] )

从负二项分布中提取样本。

noncentral_chisquare \(DFNoC) [, size] )

从非中心卡方分布中提取样本。

noncentral_f \(dfnum,dfden,非[, size] )

从非中心F分布中提取样本。

normal \ [loc, scale, size] )

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

pareto (a) [, size] )

从指定形状的Pareto II或Lomax分布中提取样品。

permutation [(x)]

随机排列序列,或返回排列范围。

poisson \ [lam, size] )

从泊松分布中提取样本。

power (a) [, size] )

提取样本 [0, 1] 从正指数a-1的幂分布。

rand \(d0,d1,…,dn)

给定形状中的随机值。

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

从返回随机整数 low (包括) high (排他性)。

randn \(d0,d1,…,dn)

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

random \ [size] )

返回半开区间内的随机浮点数[0.0,1.0]。

random_integers (低) [, high, size] )

类型的随机整数 np.int_ 之间 lowhigh 包括在内。

random_sample \ [size] )

返回半开区间内的随机浮点数[0.0,1.0]。

ranf 

这是的别名 random_sample .

rayleigh \ [scale, size] )

从瑞利分布中提取样本。

sample 

这是的别名 random_sample .

seed [自我] [, seed] )

重新设定传统MT19937位生成器的种子

set_state (状态)

从元组设置生成器的内部状态。

shuffle [(x)]

通过改变序列的内容来修改序列。

standard_cauchy \ [size] )

从模式为0的标准柯西分布中提取样本。

standard_exponential \ [size] )

从标准指数分布中提取样本。

standard_gamma [形状] [, size] )

从标准伽马分布中提取样本。

standard_normal \ [size] )

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

standard_t (DF) [, size] )

从标准学生t分布中抽取样本 df 自由度。

triangular \(左,模式,右[, size] )

从间隔的三角形分布中提取样本 [left, right] .

uniform \ [low, high, size] )

从均匀分布中提取样品。

vonmises (Mu,Kappa) [, size] )

从von mises分布中提取样本。

wald \(平均值,比例[, size] )

从瓦尔德分布或逆高斯分布中提取样本。

weibull (a) [, size] )

从威布尔分布中提取样本。

zipf (a) [, size] )

从Zipf分布中提取样本。