python - numpy 中 RandomState 和种子之间的区别

标签 python numpy random

我已经阅读了文档,但我仍然很难理解

numpy.random.RandomState(0) 

numpy.random.seed(0)

难道它们都不能确保选择随机值的过程在整个运行过程中是相同且一致的吗?

最佳答案

numpy.random.seed(0) 重置现有全局 RandomState 实例的状态,该实例是 numpy.random 中函数的基础命名空间。

numpy.random.RandomState(0) 返回一个新的种子 RandomState 实例,但除此之外不会改变任何东西。您必须使用返回的 RandomState 实例来获得一致的伪随机数。如果您使用 numpy.random 命名空间中的函数,您将不会获得一致的伪随机数,因为它们是从与您刚刚创建的实例不同的 RandomState 实例中提取的。

如果您关心可重复性,那么构建您的代码以传递 RandomState 实例是非常可取的。全局状态很糟糕。比照Consistenly create same random numpy array

关于python - numpy 中 RandomState 和种子之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37224116/

相关文章:

python - Pandas 日期偏移和转换

python3 ValueError : shapes (4, 1) 和 (4,3) 未对齐 : 1 (dim 1) ! = 4 (dim 0)

python - 如何获得 numpy 中对角线下的值总和?

python - 如何将 python urandom 转换为字符串?

haskell - 如何在 Haskell 中生成随机 Int?

python - 将多个管道分隔值拆分为逗号分隔 CSV 的多列,并将它们相互映射

Python 列表列表无循环

python - 时区 "Eastern Standard Time"无法识别

python - 从用户定义的分布中快速采样

python - 使用 python 生成具有限制和一定长度的给定数字的随机列表