每次生成相同的随机数组

Generating same random array each time

假设我们想每次生成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() 每次得到相同的数组?

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

您需要使用 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]]