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

首先,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是不变的。

发布了36 篇原创文章 · 获赞 1 · 访问量 550

猜你喜欢

转载自blog.csdn.net/qq_36758914/article/details/103960258