np.random.seed()的参数不同,记录的代码也不同
import numpy as np
np.random.seed(3)
# np.random,rand(d0, d1, d2,..) 返回一个指定shape size的ndarray 注意与np.random.randint(low, hige, size)生成随机序列数组函数的参数区别
a = np.random.rand(1)
np.random.seed(34)
b = np.random.rand(1)
np.random.seed(3)
c = np.random.rand(1)
np.random.seed(34)
d = np.random.rand(1)
print(a)
print(b)
print(c)
print(d)
只要设置了seed,后面的 所有随机函数,就会被记录下来,当代码块重新加载时,随机数不变
无论执行多少次程序,上述程序的执行均不变
# 执行结果如下
[0.5507979]
[0.03856168]
[0.5507979]
[0.03856168]
应用
在KNN算法 手写数字识别(0 ~ 10)的案例中,将feature target打乱, 但是还必须保证原本的对应关系不变
import numpy as np
np.random.seed(10)
# shuffle 洗牌
feature = np.random.shuffle(feature)
np.random.seed(10)
target = np.random.shuffle(target)