假设我们想每次在1到10之间生成相同的随机数。然后,当我运行以下命令时,每次都会得到相同的随机数:
import os
import numpy as np
import random
random.seed(30)
random.randint(1, 10)
9
random.seed(30)
random.randint(1, 10)
9
但是,如果我想生成相同的随机4x4矩阵,每次的数字在1到10之间,则会得到不同的结果:
random.seed(30)
np.random.randint(10, size=(4,4))
array([[8, 2, 6, 4],
[3, 3, 3, 5],
[6, 2, 6, 6],
[8, 7, 1, 1]])
random.seed(30)
np.random.randint(10, size=(4,4))
array([[9, 2, 1, 6],
[4, 3, 3, 8],
[1, 1, 6, 6],
[0, 2, 3, 5]])
问题。每次使用 random.seed()
如何获得相同的数组?
已添加。我添加了导入语句。
答案 0 :(得分:0)
numpy.random.seed
而不是random.seed
。现在,您混合使用2个不同的模块,即numpy
和random
。
import numpy as np
for i in range(5):
np.random.seed(30)
print(np.random.randint(10, size=(4,4)))
[[5 5 4 7]
[2 5 1 3]
[9 7 7 1]
[1 3 2 2]]
[[5 5 4 7]
[2 5 1 3]
[9 7 7 1]
[1 3 2 2]]
[[5 5 4 7]
[2 5 1 3]
[9 7 7 1]
[1 3 2 2]]
[[5 5 4 7]
[2 5 1 3]
[9 7 7 1]
[1 3 2 2]]
[[5 5 4 7]
[2 5 1 3]
[9 7 7 1]
[1 3 2 2]]