如何使用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,并有多个随机流(如果你希望某个过程相同而另一个过程发生变化等)
我希望我的脚本在每次 运行 脚本时都创建相同的数字数组。之前我使用的是 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,并有多个随机流(如果你希望某个过程相同而另一个过程发生变化等)