旧版随机数生成#
该 RandomState 类提供了对旧版生成器的访问。此生成器被视为已冻结,不会再有进一步改进。它保证会产生与 NumPy v1.16 的最终发行版相同的数值。所有这些都依赖于 Box-Muller 正态分布或逆 CDF 指数分布或 Gamma 分布。只有在必须生成与之前版本的 NumPy 相同的随机数时,才应使用此类。
该 RandomState 类会向状态添加额外信息,这在使用 Box-Muller 正态分布时是必需的,因为它们是成对生成的。当访问状态时,重要的是使用 RandomState.get_state,而不是底层的位生成器 state,以确保这些额外值被保存。
尽管我们提供了 MT19937 位生成器以独立于 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)#
旧的 Mersenne Twister 伪随机数生成器的容器。考虑使用 Generator 容器中的其他位生成器。
该
RandomState和Generator类公开了许多用于从各种概率分布中生成随机数的方法。除了特定于分布的参数外,每种方法都接受一个名为 size 的关键字参数,该参数默认为None。如果 size 为None,则生成并返回单个值。如果 size 为整数,则返回一个包含生成值的 1-D 数组。如果 size 为元组,则返回具有该形状的数组。兼容性保证
使用固定的位生成器、固定的种子以及使用相同参数对“RandomState”方法进行一系列固定调用,总会产生相同的结果(除了舍入误差),除非这些值不正确。
RandomState实际上是冻结的,只会收到 NumPy 内部变化所需进行的更新。更重大的更改,包括算法改进,都保留给Generator。- 参数:
备注
Python 的标准库模块“random”也包含一个 Mersenne Twister 伪随机数生成器,它有许多与
RandomState中的方法类似的方法。RandomState除了具有 NumPy 感知性外,还提供了更多的概率分布可供选择。
种子与状态#
简单随机数据#
|
在给定形状的随机值。 |
|
从“标准正态”分布中返回一个样本(或多个样本)。 |
|
从 low(包含)到 high(不包含)返回随机整数。 |
|
返回 low 和 high(包含)之间的 |
|
返回半开区间 [0.0, 1.0) 内的随机浮点数。 |
|
从给定的 1-D 数组生成一个随机样本 |
|
返回随机字节。 |
排列#
|
通过打乱其内容来就地修改序列。 |
|
随机排列序列,或返回一个排列后的范围。 |
分布#
|
从 Beta 分布中抽取样本。 |
|
从二项分布中抽取样本。 |
|
从卡方分布中抽取样本。 |
|
从 Dirichlet 分布中抽取样本。 |
|
从指数分布中抽取样本。 |
|
从 F 分布中抽取样本。 |
|
从 Gamma 分布中抽取样本。 |
|
从几何分布中抽取样本。 |
|
从具有指定位置(或均值)和尺度(衰减)的 Gumbel 分布中抽取样本。 |
|
从超几何分布中抽取样本。 |
|
从具有指定位置(或均值)和尺度(衰减)的 Laplace 或双指数分布中抽取样本。 |
|
从 Logistic 分布中抽取样本。 |
|
从对数正态分布中抽取样本。 |
|
从对数级数分布中抽取样本。 |
|
从多项分布中抽取样本。 |
|
从多元正态分布中抽取随机样本。 |
|
从负二项分布中抽取样本。 |
|
从非中心卡方分布中抽取样本。 |
|
从非中心 F 分布中抽取样本。 |
|
从正态(高斯)分布绘制随机样本。 |
|
从具有指定形状的 Pareto II 或 Lomax 分布中抽取样本。 |
|
从泊松分布中抽取样本。 |
|
从指数为 a - 1 的幂分布中抽取 [0, 1] 区间的样本。 |
|
从瑞利分布中抽取样本。 |
|
从中心点为 0 的标准 Cauchy 分布中抽取样本。 |
|
从标准指数分布中抽取样本。 |
|
从标准 Gamma 分布中抽取样本。 |
|
从标准正态分布(均值=0,标准差=1)中抽取样本。 |
|
从具有 df 自由度的标准学生 t 分布中抽取样本。 |
|
从区间 |
|
从均匀分布中抽取样本。 |
|
从 von Mises 分布中抽取样本。 |
|
从 Wald 或逆高斯分布中抽取样本。 |
|
从 Weibull 分布中抽取样本。 |
|
从 Zipf 分布中抽取样本。 |
numpy.random 模块中的函数#
上面列出的许多 RandomState 方法都作为函数导出到 numpy.random 模块中。不建议使用此用法,因为它通过全局 RandomState 实例实现,而该实例不被推荐,原因有两个:
它使用全局状态,这意味着结果会随着代码的更改而改变。
它使用
RandomState而不是更现代的Generator。
出于向后兼容的旧原因,我们不会更改此设置。
|
从 Beta 分布中抽取样本。 |
|
从二项分布中抽取样本。 |
|
返回随机字节。 |
|
从卡方分布中抽取样本。 |
|
从给定的 1-D 数组生成一个随机样本 |
|
从 Dirichlet 分布中抽取样本。 |
|
从指数分布中抽取样本。 |
|
从 F 分布中抽取样本。 |
|
从 Gamma 分布中抽取样本。 |
|
从几何分布中抽取样本。 |
|
返回一个表示生成器内部状态的元组。 |
|
从具有指定位置(或均值)和尺度(衰减)的 Gumbel 分布中抽取样本。 |
|
从超几何分布中抽取样本。 |
|
从具有指定位置(或均值)和尺度(衰减)的 Laplace 或双指数分布中抽取样本。 |
|
从 Logistic 分布中抽取样本。 |
|
从对数正态分布中抽取样本。 |
|
从对数级数分布中抽取样本。 |
|
从多项分布中抽取样本。 |
|
从多元正态分布中抽取随机样本。 |
|
从负二项分布中抽取样本。 |
|
从非中心卡方分布中抽取样本。 |
|
从非中心 F 分布中抽取样本。 |
|
从正态(高斯)分布绘制随机样本。 |
|
从具有指定形状的 Pareto II 或 Lomax 分布中抽取样本。 |
|
随机排列序列,或返回一个排列后的范围。 |
|
从泊松分布中抽取样本。 |
|
从指数为 a - 1 的幂分布中抽取 [0, 1] 区间的样本。 |
|
在给定形状的随机值。 |
|
从 low(包含)到 high(不包含)返回随机整数。 |
|
从“标准正态”分布中返回一个样本(或多个样本)。 |
|
返回半开区间 [0.0, 1.0) 内的随机浮点数。 |
|
返回 low 和 high(包含)之间的 |
|
返回半开区间 [0.0, 1.0) 内的随机浮点数。 |
|
这是 |
|
从瑞利分布中抽取样本。 |
|
这是 |
|
重新设置单例RandomState实例的种子。 |
|
从一个元组设置生成器的内部状态。 |
|
通过打乱其内容来就地修改序列。 |
|
从中心点为 0 的标准 Cauchy 分布中抽取样本。 |
|
从标准指数分布中抽取样本。 |
|
从标准 Gamma 分布中抽取样本。 |
|
从标准正态分布(均值=0,标准差=1)中抽取样本。 |
|
从具有 df 自由度的标准学生 t 分布中抽取样本。 |
|
从区间 |
|
从均匀分布中抽取样本。 |
|
从 von Mises 分布中抽取样本。 |
|
从 Wald 或逆高斯分布中抽取样本。 |
|
从 Weibull 分布中抽取样本。 |
|
从 Zipf 分布中抽取样本。 |