如何同时拥有多个具有不同种子的 numpy 随机生成对象
How to have multiple numpy random generating objects with different seeds t the same time
为了描述我的意思,请考虑以下虚拟示例:
import numpy as np1
import numpy as np2
seed1 = 1
seed2 = 2
np1.random.seed(seed1)
np2.random.seed(seed2)
其中 np1.random.normal(0, 2, 1)
returns 一个值完全不管 seed2
是什么。 (当然这在这个例子中不起作用。
有没有两个独立的随机生成对象有这样的功能?
使用最新版本,您可以制作多个随机生成器。请参阅文档。
为了说明,用相同的种子制作 2 个:
In [5]: r1 =np.random.default_rng(1)
In [6]: r2 =np.random.default_rng(1)
它们将生成相同的随机整数而不会相互踩踏:
In [8]: r1.integers(0,10,5)
Out[8]: array([4, 5, 7, 9, 0])
In [9]: r2.integers(0,10,5)
Out[9]: array([4, 5, 7, 9, 0])
或更多 r1
个序列:
In [10]: r1.integers(0,10,5)
Out[10]: array([1, 8, 9, 2, 3])
In [11]: r1.integers(0,10,5)
Out[11]: array([8, 4, 2, 8, 2])
In [12]: r1.integers(0,10,5)
Out[12]: array([4, 6, 5, 0, 0])
与输出相同[10]
In [13]: r2.integers(0,10,5)
Out[13]: array([1, 8, 9, 2, 3])
为了描述我的意思,请考虑以下虚拟示例:
import numpy as np1
import numpy as np2
seed1 = 1
seed2 = 2
np1.random.seed(seed1)
np2.random.seed(seed2)
其中 np1.random.normal(0, 2, 1)
returns 一个值完全不管 seed2
是什么。 (当然这在这个例子中不起作用。
有没有两个独立的随机生成对象有这样的功能?
使用最新版本,您可以制作多个随机生成器。请参阅文档。
为了说明,用相同的种子制作 2 个:
In [5]: r1 =np.random.default_rng(1)
In [6]: r2 =np.random.default_rng(1)
它们将生成相同的随机整数而不会相互踩踏:
In [8]: r1.integers(0,10,5)
Out[8]: array([4, 5, 7, 9, 0])
In [9]: r2.integers(0,10,5)
Out[9]: array([4, 5, 7, 9, 0])
或更多 r1
个序列:
In [10]: r1.integers(0,10,5)
Out[10]: array([1, 8, 9, 2, 3])
In [11]: r1.integers(0,10,5)
Out[11]: array([8, 4, 2, 8, 2])
In [12]: r1.integers(0,10,5)
Out[12]: array([4, 6, 5, 0, 0])
与输出相同[10]
In [13]: r2.integers(0,10,5)
Out[13]: array([1, 8, 9, 2, 3])