我已经阅读了文档,但我仍然很难理解
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/