【问题标题】:Shuffling with seed does not give same result用种子洗牌不会产生相同的结果
【发布时间】:2022-01-26 11:50:48
【问题描述】:

您好,我在使用 numpy 的 shuffle 功能时遇到问题。我写了以下代码:

import numpy as np
rs = 43
np.random.seed(rs)
for i in range(1, 5):
    l = [1, 2, 3, 4, 5]
    np.random.shuffle(l)
    print(l)

这给了我以下输出:

[4, 3, 2, 1, 5]
[4, 5, 2, 1, 3]
[2, 1, 5, 3, 4]
[5, 2, 3, 4, 1]

现在,如果我设置种子,不应该每次洗牌都会给我相同的结果吗?我找不到我的错误请帮助我。 提前致谢。

【问题讨论】:

  • 每次运行程序都应该得到相同的结果,而不是每次调用shuffle

标签: python numpy shuffle random-seed


【解决方案1】:

如果将 np.random.seed(rs) 放在循环内的 shuffle 行之前,则每次迭代都会得到相同的结果。因为你把它放在迭代之前,你的程序每次启动程序时总是会产生相同的不同序列。每次迭代得到不同结果的原因是因为每次调用 shuffle 函数时,种子都会发生变化,因此每次迭代都有不同的随机数!

【讨论】:

    猜你喜欢
    • 2014-09-12
    • 1970-01-01
    • 2011-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-23
    相关资源
    最近更新 更多