gpt4 book ai didi

python - 每次运行代码时,如何在循环内使用种子来获得相同的随机样本?

转载 作者:行者123 更新时间:2023-12-02 18:01:32 26 4
gpt4 key购买 nike

我想使用随机数生成数据,然后使用生成的数据通过替换生成随机样本。问题是使用 random.seed(10) 只会修复生成数据的初始随机数,但不会修复循环内生成的随机样本,每次运行代码时我都会得到相同的结果生成的数据但随机样本不同,我想获得相同的随机样本以获得可重现的结果。代码如下:

import numpy as np
import random

np.random.seed(10)

data = list(np.random.binomial(size = 215 , n=1, p= 0.3))

sample_mean = []

for i in range(1000):

sample = random.choices(data, k=215)
mean = np.mean(sample)
sample_mean.append(mean)

print(np.mean(sample_mean))

np.mean(sample_mean) 应该在每次运行代码时检索相同的值,但它并没有发生。

我尝试在循环中输入 random.seed(i) 但它不起作用。

最佳答案

您的 random.choices(data, k=215) 来自 python 内置 random 库,它与 numpy.random< 中的种子不同,所以播种 numpy 是不够的。

此处正确的解决方案是在此处使用 numpy np.random.choice,因为您已经在使用 numpy。

import numpy as np

np.random.seed(10)

data = np.random.binomial(size=215, n=1, p=0.3)

sample_mean = []

for i in range(1000):
sample = np.random.choice(data,size=215)
mean = np.mean(sample)
sample_mean.append(mean)


print(np.mean(sample_mean))

ps:在 data 上调用 list 是没有必要的,而且会降低你的代码速度。

关于python - 每次运行代码时,如何在循环内使用种子来获得相同的随机样本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74255173/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com