【问题标题】:How to fix the seed while using random.choice? [duplicate]如何在使用 random.choice 时修复种子? [复制]
【发布时间】:2020-10-09 09:07:13
【问题描述】:

这是对我在here发布的问题的跟进

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 的种子每次创建相同的输出。

建议会很有帮助。

获得的输出: 运行1:

[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(n) 应该有我认为的预期效果。如果您在代码之前添加它
  • 你能澄清你的问题是什么吗?要设置随机种子,实际上有一个名为random.seed 的函数。你用过吗?

标签: python-3.x random


【解决方案1】:

您可以使用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]

这段代码每次运行都会产生相同的结果。


如果您使用 numpy,则有 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]

【讨论】:

    猜你喜欢
    • 2019-10-10
    • 2021-07-28
    • 1970-01-01
    • 2019-09-13
    • 2017-12-10
    • 1970-01-01
    • 2017-09-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多