【Bug Recod】更新中...

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()来每次随机重置随机数

或者,不要在函数中调用,直接在整个主函数中进行