numpy中RandomState和seed的区别

11
我已经阅读了文档,但我仍然难以理解如何区分使用

的不同之处。
numpy.random.RandomState(0) 
或者
numpy.random.seed(0)

它们不都确保随机值选择过程在每次运行中都相同和一致吗?


请参阅以下链接:https://dev59.com/u2Ag5IYBdhLWcg3w7uyk - Martin Thoma
1个回答

12

numpy.random.seed(0) 会重新设置 numpy.random 命名空间下函数所使用的全局 RandomState 实例的状态。

numpy.random.RandomState(0) 返回一个新的、已经进行种子化的 RandomState 实例,但不会改变任何其他东西。您必须使用返回的 RandomState 实例才能获得一致的伪随机数。如果您使用 numpy.random 命名空间中的函数,则不会获得一致的伪随机数,因为它们使用的是与您刚创建的实例不同的 RandomState 实例。

如果您关心可重复性,最好将代码结构化以传递 RandomState 实例。全局状态很糟糕。参见:Consistenly create same random numpy array


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接