如何解决NumPy-样本大小更改时随机种子不起作用吗?
有人可以帮助我理解为什么当我将样本大小从3000更改为5000时,以下代码为何不能使random_list_2保持相同吗?
import numpy as np
np.random.seed(2)
sample_size = 3000
random_list_1 = np.random.randint(low = 1,high = 3,size = sample_size).tolist()
random_list_2 = np.random.randint(low = 100000,high = 1000000000,size = sample_size).tolist()
解决方法
种子只是RNG(随机数生成器)的起始值。您生成的每个随机数都会更新种子。指定起始种子时,您将获得确定性,可重复的种子值序列。
更改样本大小时,将更改randint
调用中的更新数量。第二个调用以前按此顺序从值3001开始,现在它从5001开始。
random_list_1 = np.random.randint(low = 1,high = 3,size = sample_size).tolist()
random_list_2 = np.random.randint(low = 100000,high = 1000000000,size = sample_size).tolist()
如果将sample_size
替换为1000,则会看到这1000个随机整数与原始(大小为3000)调用的最后1000个数字相同。在这种情况下,您将获得那1000个和另外4000个新整数。
如果要维护random_list_2
,则需要为其提供一个稳定的种子:要么为其提供单独的种子,要么切换呼叫顺序。切换顺序只会将相同的效果转移到random_list_1
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。