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

如何让numpy.random.randint生成预期结果?差异原因解析

问题解答

差异和Colab执行次数有关吗?

没关系。np.random.randint生成的是伪随机数,每次结果不同的根本原因是随机数生成器的初始种子不一样,和Colab执行多少次完全无关——哪怕在同一个Colab会话里重复执行,只要没固定种子,结果也会变。

怎么拿到课程里的预期结果?

要复现课程里的随机数组,核心是给NumPy的随机数生成器设置和课程完全相同的初始种子。NumPy的随机函数都是基于种子生成的,种子一致,生成的随机序列就完全一致。

具体操作:

  • 在调用np.random.randint之前,先执行np.random.seed(xxx),这里的xxx就是课程演示时用的种子值。
  • 如果你不知道课程用的种子,可以多试几个常见值(比如0、1、42),或者写个简单的循环测试不同种子,直到生成的数组和预期匹配。

举个测试示例:

import numpy as np

# 定义课程里的目标数组
target_arr = np.array([[ 3,  9,  4, 10,  9,  2],
                       [ 6,  4,  7, 15,  1, 10],
                       [11,  2,  4,  7,  1, 16],
                       [11, 18, 18, 10, 10,  4],
                       [17,  1,  6, 11, 10, 13]])

# 遍历种子找匹配值
for seed in range(0, 1000):
    np.random.seed(seed)
    test_arr = np.random.randint(0, 20, size=(5, 6))
    if np.array_equal(test_arr, target_arr):
        print(f"找到匹配的种子:{seed}")
        break

找到对应种子后,每次运行前先设置这个种子,就能生成和课程完全一样的数组了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 19:04:55