You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中设置种子以实现可复现的运行?

问题原因与解决方案

你遇到的问题核心是:Python标准库的random模块和numpy.random模块使用完全独立的随机数生成器,二者的种子状态互不共享。你只设置了random.seed(1),但实际调用的numpy.random.permutation受numpy自身的随机种子控制,因此无法复现结果。

正确设置方式

要让numpy.random.permutation的结果可复现,需要针对numpy的随机生成器设置种子,而非仅设置标准库random的种子:

方案一:仅设置numpy随机种子

修改代码如下,确保numpy的随机状态被固定:

import numpy
import random

order = [1,2,3,4,5]
numpy.random.seed(1)  # 设置numpy专属的随机种子
random_num = list(numpy.random.permutation(order))

print(random_num)

每次运行这段代码,都会得到完全一致的输出(具体值由种子1决定)。

方案二:同时设置两个模块的种子(若代码混用两者)

如果你的代码后续还会用到random模块的随机函数(比如random.shuffle),可以同时设置两个模块的种子,确保所有随机操作都能复现:

import numpy
import random

order = [1,2,3,4,5]
random.seed(1)
numpy.random.seed(1)
random_num = list(numpy.random.permutation(order))
# 后续若有random模块的操作,比如 random.shuffle(order),也能保证结果一致
print(random_num)

内容的提问来源于stack exchange,提问作者Marloes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 01:15:31