如何一致地创建相同的随机numpy数组?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (53)

我正在等待另一个开发人员完成一段代码,该代码将返回一个形状的NP数组(100,2000),其值为-1,0或1。

同时,我想随机创建一个具有相同特性的数组,这样我就可以在开发和测试方面取得先机。问题是,我希望这个随机创建的数组每次都是相同的,这样我就不会对一个数组进行测试,该数组在每次运行我的进程时都会不断地更改它的值。

我可以像这样创建数组,但是有什么方法可以创建数组,以便每次都是相同的。

r = np.random.randint(3, size=(100, 2000)) - 1
提问于
用户回答回答于

简单地用一个固定值的随机数产生器种子。

numpy.random.seed(42)

这样,你就会得到相同的随机数序列。

用户回答回答于

[~]
|1> from numpy.random import RandomState

[~]
|2> prng = RandomState(1234567890)

[~]
|3> prng.randint(-1, 2, size=10)
array([ 1,  1, -1,  0,  0, -1,  1,  0, -1, -1])

[~]
|4> prng2 = RandomState(1234567890)

[~]
|5> prng2.randint(-1, 2, size=10)
array([ 1,  1, -1,  0,  0, -1,  1,  0, -1, -1])

扫码关注云+社区