旧版随机数生成#
RandomState 提供了对旧版生成器的访问.此生成器被认为是冻结的,并且不会再进行改进. 它保证产生与 NumPy v1.16 的最终点发布版本相同的值. 这些都依赖于 Box-Muller 正态分布或逆 CDF 指数或伽玛分布. 仅当需要与以前版本的 NumPy 产生的随机数完全相同时,才应使用此类.
RandomState 将附加信息添加到状态,这在使用 Box-Muller 正态分布时是必需的,因为这些是成对产生的.在访问状态时,重要的是使用 RandomState.get_state ,而不是底层 bit generator 的 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.
RandomState和Generator公开了一些方法,用于生成从各种概率分布中提取的随机数. 除了特定于分布的参数之外,每种方法都接受一个关键字参数 size ,其默认为None. 如果 size 为None,则生成并返回单个值. 如果 size 是一个整数,则返回一个填充有生成值的 1-D 数组. 如果 size 是一个元组,则填充并返回具有该形状的数组.兼容性保证
一个使用固定种子和一系列使用相同参数调用 ‘RandomState’ 方法的固定位生成器,除了值错误外,总是会产生相同的结果(直到舍入误差).
RandomState实际上是被冻结的,只会接收 Numpy 内部变化所需的更新.更实质性的更改,包括算法的改进,将保留给Generator.- 参数:
注释
Python的标准库模块"random"也包含一个梅森旋转伪随机数生成器,它具有许多与
RandomState中可用的方法类似的方法.RandomState除了可以识别NumPy之外,还具有提供更多概率分布可供选择的优势.
播种和状态#
简单随机数据#
|
给定形状的随机值. |
|
从"标准正态"分布返回样本. |
|
从 low (包含) 到 high (不包含) 返回随机整数. |
|
low 和 high 之间的 |
|
返回半开区间 [0.0, 1.0) 中的随机浮点数. |
|
从给定的 1-D 数组中生成随机样本 |
|
返回随机字节. |
排列组合#
|
通过对序列的内容进行洗牌来就地修改序列. |
|
随机置换一个序列,或返回一个置换的范围. |
分布#
|
从 Beta 分布中抽取样本. |
|
从二项分布中抽取样本. |
|
从卡方分布中抽取样本. |
|
从 Dirichlet 分布中抽取样本. |
|
从指数分布中抽取样本. |
|
从 F 分布中抽取样本. |
|
从伽马分布中抽取样本. |
|
从几何分布中抽取样本. |
|
从耿贝尔分布中抽取样本. |
|
从超几何分布中抽取样本. |
|
从具有指定位置(或均值)和尺度(衰减)的拉普拉斯或双指数分布中抽取样本. |
|
从逻辑分布中抽取样本. |
|
从对数正态分布中抽取样本. |
|
从对数级数分布中抽取样本. |
|
从多项分布中抽取样本. |
|
从多元正态分布中抽取随机样本. |
|
从负二项分布中抽取样本. |
|
从非中心卡方分布中抽取样本. |
|
从非中心 F 分布中抽取样本. |
|
从正态(高斯)分布中抽取随机样本. |
|
从具有指定形状的 Pareto II 或 Lomax 分布中抽取样本. |
|
从泊松分布中抽取样本. |
|
从具有正指数 a - 1 的幂分布中抽取 [0, 1] 中的样本. |
|
从瑞利分布中抽取样本. |
|
从 mode = 0 的标准柯西分布中抽取样本. |
|
从标准指数分布中抽取样本. |
|
从标准 Gamma 分布中抽取样本. |
|
从标准正态分布(均值=0,标准差=1)中抽取样本. |
|
从具有 df 自由度的标准学生 t 分布中抽取样本. |
|
从区间 |
|
从均匀分布中抽取样本. |
|
从 von Mises 分布中抽取样本. |
|
从 Wald 或逆高斯分布中抽取样本. |
|
从 Weibull 分布中抽取样本. |
|
从 Zipf 分布中抽取样本. |
numpy.random 中的函数#
上面的许多 RandomState 方法在 numpy.random 中作为函数导出.不鼓励这种用法,因为它通过全局 RandomState 实例实现,由于以下两个原因,不建议这样做:
它使用全局状态,这意味着结果会随着代码的更改而更改
它使用
RandomState而不是更现代的Generator.
由于向后兼容的遗留原因,我们不会更改此设置.
|
从 Beta 分布中抽取样本. |
|
从二项分布中抽取样本. |
|
返回随机字节. |
|
从卡方分布中抽取样本. |
|
从给定的 1-D 数组中生成随机样本 |
|
从 Dirichlet 分布中抽取样本. |
|
从指数分布中抽取样本. |
|
从 F 分布中抽取样本. |
|
从伽马分布中抽取样本. |
|
从几何分布中抽取样本. |
|
返回一个表示生成器内部状态的元组. |
|
从耿贝尔分布中抽取样本. |
|
从超几何分布中抽取样本. |
|
从具有指定位置(或均值)和尺度(衰减)的拉普拉斯或双指数分布中抽取样本. |
|
从逻辑分布中抽取样本. |
|
从对数正态分布中抽取样本. |
|
从对数级数分布中抽取样本. |
|
从多项分布中抽取样本. |
|
从多元正态分布中抽取随机样本. |
|
从负二项分布中抽取样本. |
|
从非中心卡方分布中抽取样本. |
|
从非中心 F 分布中抽取样本. |
|
从正态(高斯)分布中抽取随机样本. |
|
从具有指定形状的 Pareto II 或 Lomax 分布中抽取样本. |
|
随机置换一个序列,或返回一个置换的范围. |
|
从泊松分布中抽取样本. |
|
从具有正指数 a - 1 的幂分布中抽取 [0, 1] 中的样本. |
|
给定形状的随机值. |
|
从 low (包含) 到 high (不包含) 返回随机整数. |
|
从"标准正态"分布返回样本. |
|
返回半开区间 [0.0, 1.0) 中的随机浮点数. |
|
low 和 high 之间的 |
|
返回半开区间 [0.0, 1.0) 中的随机浮点数. |
|
这是 |
|
从瑞利分布中抽取样本. |
|
这是 |
|
重新设定单例 RandomState 实例的种子. |
|
从元组设置生成器的内部状态. |
|
通过对序列的内容进行洗牌来就地修改序列. |
|
从 mode = 0 的标准柯西分布中抽取样本. |
|
从标准指数分布中抽取样本. |
|
从标准 Gamma 分布中抽取样本. |
|
从标准正态分布(均值=0,标准差=1)中抽取样本. |
|
从具有 df 自由度的标准学生 t 分布中抽取样本. |
|
从区间 |
|
从均匀分布中抽取样本. |
|
从 von Mises 分布中抽取样本. |
|
从 Wald 或逆高斯分布中抽取样本. |
|
从 Weibull 分布中抽取样本. |
|
从 Zipf 分布中抽取样本. |