numpy.random.RandomState 中的参数 1234

Argument 1234 in numpy.random.RandomState

我在代码中遇到了这一行:

numpy_rng = numpy.random.RandomState(1234)

我在 the documentation 中看到 numpy.random.RandomState 是一种可以在其中找到许多概率分布的库。但是,我不理解 1234 的论点。有人请解释一下吗?

RandomState是一个伪随机数生成器,这意味着它不能生成真正的随机数,只能生成"look"随机的数字。为此,您需要给它一些初始值 "seed",它可以用来生成数字。

你指的参数是种子;它最好对每个函数调用都是唯一的,因为如果用相同的种子调用它两次,它将生成完全相同的数字序列。

声明:

r = numpy.random.RandomState(1234)

创建一个 Mersenne Twister 随机数生成器,并将其绑定到名称 r。 Mersenne Twister 是一种非常有用的算法,用于生成适用于大规模科学模拟的伪随机数。

您传递给 numpy.random.RandomState 的参数是生成器的种子,它指定了伪随机数序列的起点。如果你用相同的东西给两个不同的生成器播种,你将得到相同的结果序列。 uniform() 方法 returns 一个介于 0 和 1 之间的伪随机数。观察:

>>> import numpy.random
>>> r = numpy.random.RandomState(1234)
>>> r.uniform()
0.1915194503788923
>>> r.uniform()
0.6221087710398319

>>> r2 = numpy.random.RandomState(1235)
>>> r2.uniform()
0.9537625822517408
>>> r2.uniform()
0.9921264707372405

>>> r3 = numpy.random.RandomState(1234)
>>> r3.uniform()
0.1915194503788923
>>> r3.uniform()
0.6221087710398319

保存用于构造 RandomState 对象的种子值将允许您稍后使用相同的伪随机数序列重新运行模拟。