如何使用random.RandomState

How to use random.RandomState

我希望我的脚本在每次 运行 脚本时都创建相同的数字数组。之前我使用的是 np.random.seed()。例如:

np.random.seed(1)
X = np.random.random((3,2))

我读到应该使用 RandomState 而不是 np.random.seed()。但我不知道如何使用它,尝试了一些组合,但 none 有效。

的确,确保从特定(非全局)流中获取熵有时是有利的。基本上,您所要做的就是创建一个 RandomState 对象,然后使用它的 方法 而不是使用 numpy 的随机 函数 。例如,而不是

>>> np.random.seed(3)
>>> np.random.rand()
0.5507979025745755
>>> np.random.randint(10**3, 10**4)
7400

你可以写

>>> R = np.random.RandomState(3)
>>> R
<mtrand.RandomState object at 0x7f79b3315f28>
>>> R.rand()
0.5507979025745755
>>> R.randint(10**3, 10**4)
7400

所以您需要做的就是制作 R 然后使用 R. 而不是 np.random. - 非常简单。你可以随心所欲地传递 R,并有多个随机流(如果你希望某个过程相同而另一个过程发生变化等)