假设我们想每次生成相同的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()
获得相同的数组?
添加了.,我添加了导入语句。
发布于 2020-05-27 11:59:18
您需要使用numpy.random.seed
而不是random.seed
。
现在,您混合了两个不同的模块,即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]]
https://stackoverflow.com/questions/62051770
复制相似问题