np.random.shuffle() 种子每次都给出不同的洗牌

np.random.shuffle() with seed giving different shuffles every time

我有一个很长的列表,其中存储了大约 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变量,每次结果都一样。在这里,您只是创建了一次 labels 并多次执行改组代码。

np.random.shuffle 修改您的列表 in-place。这也解释了为什么 return 值不是必需的。