每次生成相同的随机数组

时间:2020-05-27 19:55:10

标签: python random-seed

假设我们想每次在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() 如何获得相同的数组?

已添加。我添加了导入语句。

1 个答案:

答案 0 :(得分:0)

您需要使用numpy.random.seed而不是random.seed

现在,您混合使用2个不同的模块,即numpyrandom


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]]
相关问题