Python 如何同时生成多个具有不同种子的numpy随机生成对象 描述我的意思,考虑下面的虚拟例子: import numpy as np1 import numpy as np2 seed1 = 1 seed2 = 2 np1.random.seed(seed1) np2.random.seed(seed2)

Python 如何同时生成多个具有不同种子的numpy随机生成对象 描述我的意思,考虑下面的虚拟例子: import numpy as np1 import numpy as np2 seed1 = 1 seed2 = 2 np1.random.seed(seed1) np2.random.seed(seed2),python,numpy,random,random-seed,seed,Python,Numpy,Random,Random Seed,Seed,其中np1.random.normal(0,2,1)返回一个值,而不管seed2是什么。(在本例中,这当然不起作用 在有两个独立的随机生成对象的情况下,是否有这样的功能?对于最新版本,您可以创建多个随机生成器。请参阅文档 为了举例说明,使用相同的种子制作2: In [5]: r1 =np.random.default_rng(1) In [6]: r2 =np.random.default_rng(1) 它们将生成相同的随机整数,而不会相互影响: In [8]: r1.integers(0,1

其中
np1.random.normal(0,2,1)
返回一个值,而不管
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])
与Out相同[10]

In [13]: r2.integers(0,10,5)
Out[13]: array([1, 8, 9, 2, 3])

是的,使用np.random.RandomState该示例使用42作为两个示例的种子,但您当然可以将其中一个设置为1,另一个设置为2。请注意,numpy.random.RandomState是从numpy 1.17开始的遗留类。该版本引入了新的随机生成器系统以及numpy.random.generator。请参阅。最新的随机数包l你可以创建多个独立的随机数生成器。如果你能投票支持我的问题,我会很高兴,这样我就不会被暂停。。。