numpy
[20250703]-np.random
关于其随机数生成器,调用时,会进入一个函数中,则每次进入函数都会隐形重置种子,导致每次输出的结果都是一样的,如下情况所示:
c
# 隐性重置的情况(即使你没手动设置)
def some_function():
np.random.seed(42) # 其他函数中设置了种子
return np.random.rand()
# 主程序
for _ in range(3):
some_function() # 每次调用都会重置RNG状态
print(np.random.choice(5, 2, replace=False)) # 结果始终相同
为了避免这个情况,最好如下操作:
c
np.random.default_rng().choice()
用np.random.default_rng()来每次随机重置随机数
或者,不要在函数中调用,直接在整个主函数中进行