当前位置: 代码迷 >> 综合 >> np.random.seed()函数的用法
  详细解决方案

np.random.seed()函数的用法

热度:112   发布时间:2023-10-28 16:10:12.0

首先,np.random.seed()函数中的参数可以选择任何一个数。
它的功能是使设有相同参数的seed函数之后的随机数都相等。如:

a = np.array([[1, 2, 3, 4, 5], [2, 3, 4, 5, 6], [3, 4, 5, 6, 7], [4, 5, 6, 7, 8], [5, 6, 7, 8, 9]])
print(a)for i in range(3):np.random.seed(0)b = np.random.permutation(a)print(b)

得到:

[[1 2 3 4 5][2 3 4 5 6][3 4 5 6 7][4 5 6 7 8][5 6 7 8 9]]
[[3 4 5 6 7][1 2 3 4 5][2 3 4 5 6][4 5 6 7 8][5 6 7 8 9]]
[[3 4 5 6 7][1 2 3 4 5][2 3 4 5 6][4 5 6 7 8][5 6 7 8 9]]
[[3 4 5 6 7][1 2 3 4 5][2 3 4 5 6][4 5 6 7 8][5 6 7 8 9]]

而:

a = np.array([[1, 2, 3, 4, 5], [2, 3, 4, 5, 6], [3, 4, 5, 6, 7], [4, 5, 6, 7, 8], [5, 6, 7, 8, 9]])
print(a)
np.random.seed(0)
b = np.random.permutation(a)
print(b)
np.random.seed(1)
c = np.random.permutation(a)
print(c)
np.random.seed(2)
d = np.random.permutation(a)
print(d)

得到:

[[1 2 3 4 5][2 3 4 5 6][3 4 5 6 7][4 5 6 7 8][5 6 7 8 9]]
[[3 4 5 6 7][1 2 3 4 5][2 3 4 5 6][4 5 6 7 8][5 6 7 8 9]]
[[3 4 5 6 7][2 3 4 5 6][5 6 7 8 9][1 2 3 4 5][4 5 6 7 8]]
[[3 4 5 6 7][5 6 7 8 9][2 3 4 5 6][4 5 6 7 8][1 2 3 4 5]]

设置完一个seed之后,对所有之后的随机数都有效,不论执行程序多少次,所得到的随机数是不变的,如:

a = np.array([[1, 2, 3, 4, 5], [2, 3, 4, 5, 6], [3, 4, 5, 6, 7], [4, 5, 6, 7, 8], [5, 6, 7, 8, 9]])
print(a)
np.random.seed(0)
b = np.random.permutation(a)
print(b)
c = np.random.permutation(a)
print(c)
d = np.random.permutation(a)
print(d)

无论执行多少次,得到的结果都是:

[[1 2 3 4 5][2 3 4 5 6][3 4 5 6 7][4 5 6 7 8][5 6 7 8 9]]
[[3 4 5 6 7][1 2 3 4 5][2 3 4 5 6][4 5 6 7 8][5 6 7 8 9]]
[[1 2 3 4 5][3 4 5 6 7][2 3 4 5 6][5 6 7 8 9][4 5 6 7 8]]
[[2 3 4 5 6][4 5 6 7 8][5 6 7 8 9][1 2 3 4 5][3 4 5 6 7]]

也就是说,虽然在执行一次程序的过程中,b、c、d数组是不同的,但重复执行此程序时,b、c、d是不变的。

  相关解决方案