numpy中RandomState和种子之间的区别

时间:2016-05-14 07:49:46

标签: python numpy random

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

之间的区别
numpy.random.RandomState(0) 

numpy.random.seed(0)

他们是否都确保选择随机值的过程在运行过程中是相同且一致的?

1 个答案:

答案 0 :(得分:8)

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

numpy.random.RandomState(0)会返回一个新的种子RandomState实例,但不会更改任何内容。您必须使用返回的RandomState实例来获得一致的伪随机数。如果您使用numpy.random命名空间中的函数,则不会获得一致的伪随机数,因为它们来自与您刚刚创建的实例不同的RandomState实例。

如果您关心可重复性,则最好将代码结构化以传递RandomState个实例。全球国家很糟糕。 C.F. Consistenly create same random numpy array