如何在使用 random.choice 时修复种子? [英] How to fix the seed while using random.choice?
本文介绍了如何在使用 random.choice 时修复种子?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这是我在此处
import random
l = [11.1, 22.2, 33.3, 11.1, 33.3, 33.3, 22.2, 55.5]
l_new = random.choices(l, k=30)
print(l_new)
random.choice
使用来自 l
的值生成一个新列表.我想每次通过修复 random.choice
的种子来创建相同的输出.
random.choice
generates a new list using values from l
. I would like to create the same output each time by fixing the seed of random.choice
.
建议会很有帮助.
获得的输出:运行 1:
Output obtained: Run1:
[33.3, 33.3, 33.3, 33.3, 55.5, 11.1, 11.1, 55.5, 22.2, 11.1, 33.3, 11.1, 55.5, 22.2, 33.3, 22.2, 22.2, 33.3, 55.5, 11.1, 11.1, 55.5, 11.1, 33.3, 11.1, 33.3, 33.3, 22.2, 33.3, 11.1]
运行 2:
[22.2, 11.1, 33.3, 55.5, 33.3, 22.2, 33.3, 11.1, 22.2, 11.1, 11.1, 33.3, 33.3, 22.2, 33.3, 22.2, 11.1, 11.1, 55.5, 55.5, 33.3, 11.1, 55.5, 22.2, 33.3, 33.3, 55.5, 22.2, 22.2, 33.3]
预期:
运行 1:
[22.2, 11.1, 33.3, 55.5, 33.3, 22.2, 33.3, 11.1, 22.2, 11.1, 11.1, 33.3, 33.3, 22.2, 33.3, 22.2, 11.1, 11.1, 55.5, 55.5, 33.3, 11.1, 55.5, 22.2, 33.3, 33.3, 55.5, 22.2, 22.2, 33.3]
运行 2:
[22.2, 11.1, 33.3, 55.5, 33.3, 22.2, 33.3, 11.1, 22.2, 11.1, 11.1, 33.3, 33.3, 22.2, 33.3, 22.2, 11.1, 11.1, 55.5, 55.5, 33.3, 11.1, 55.5, 22.2, 33.3, 33.3, 55.5, 22.2, 22.2, 33.3]
推荐答案
您可以使用 random.seed()
import random
l = [11.1, 22.2, 33.3, 11.1, 33.3, 33.3, 22.2, 55.5]
random.seed(1)
l_new = random.choices(l, k=30)
print(l_new)
输出运行 1:
[55.5, 55.5, 11.1, 11.1, 22.2, 33.3, 33.3, 33.3, 33.3, 33.3, 33.3, 22.2, 11.1, 11.1, 33.3, 55.5, 55.5, 33.3, 11.1, 33.3, 11.1, 11.1, 11.1, 33.3, 11.1, 55.5, 33.3, 33.3, 22.2, 11.1]
输出运行 2:
[55.5, 55.5, 11.1, 11.1, 22.2, 33.3, 33.3, 33.3, 33.3, 33.3, 33.3, 22.2, 11.1, 11.1, 33.3, 55.5, 55.5, 33.3, 11.1, 33.3, 11.1, 11.1, 11.1, 33.3, 11.1, 55.5, 33.3, 33.3, 22.2, 11.1]
这段代码每次运行都会产生相同的结果.
This code will always generate the same result each run.
如果您使用 numpy,则有 numpy.random.seeed()
In case you use numpy there is numpy.random.seeed()
import numpy
l = [11.1, 22.2, 33.3, 11.1, 33.3, 33.3, 22.2, 55.5]
numpy.random.seed(1)
l_new = list(numpy.random.choice(l, size=30))
print(l_new)
输出运行 1:
[33.3, 11.1, 33.3, 11.1, 55.5, 22.2, 11.1, 33.3, 55.5, 11.1, 11.1, 22.2, 33.3, 55.5, 33.3, 33.3, 22.2, 22.2, 33.3, 33.3, 22.2, 33.3, 33.3, 33.3, 11.1, 33.3, 33.3, 33.3, 33.3, 22.2]
输出运行 2:
[33.3, 11.1, 33.3, 11.1, 55.5, 22.2, 11.1, 33.3, 55.5, 11.1, 11.1, 22.2, 33.3, 55.5, 33.3, 33.3, 22.2, 22.2, 33.3, 33.3, 22.2, 33.3, 33.3, 33.3, 11.1, 33.3, 33.3, 33.3, 33.3, 22.2]
这篇关于如何在使用 random.choice 时修复种子?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文