【问题标题】:np.random.shuffle() with seed giving different shuffles every time带有种子的 np.random.shuffle() 每次都会给出不同的随机播放
【发布时间】:2022-01-21 14:06:33
【问题描述】:

我有一个很长的列表,其中存储了大约 127k 个整数。我想用种子对列表进行洗牌,以便稍后获得可重复的结果。但是,似乎每次我执行代码时,列表都会重新洗牌。这是代码:

import numpy as np
np.random.seed(5)
np.random.shuffle(labels)
print(labels[:5])

最后的打印语句在每次运行时给出不同的结果,例如:

[124802, 178520, 155245, 127235, 146541]
[31595, 120382, 47991, 141687, 62795]
[13991, 67563, 69090, 76243, 184231]

如果我监督了一些非常明显的事情,我深表歉意。希望有人能抽出几分钟的时间来提供帮助!

干杯!

【问题讨论】:

  • 我无法重现您的问题。如果我使用您的代码运行脚本(当然还要定义labels),每次运行脚本时,我都会得到相同的答案。

标签: python numpy random shuffle seed


【解决方案1】:

重新创建一个labels 变量,每次的结果都是一样的。在这里,您只是创建了一次labels 并执行了多次混洗代码。

np.random.shuffle 修改您的列表就地。这也解释了为什么不需要返回值。

【讨论】:

  • 感谢@Guimoute,这似乎确实是问题所在,使用labels 的副本给了我想要的结果。
猜你喜欢
  • 1970-01-01
  • 2021-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-05
  • 2021-03-01
  • 1970-01-01
  • 2023-03-26
相关资源
最近更新 更多