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

如何实现重复抽样结果固定的NumPy数组行选取?

固定随机抽样结果的最简实现方法

我有一个numpy数组,希望从中选取若干行,要求重复执行抽样操作时,选取的行保持不变。但当前代码每次运行都会得到不同的抽样结果:

import numpy as np

# 示例数组
points = np.array([[ 4.926, 46.153],
                   [ 5.428, 46.009],
                   [ 5.373, 45.961],
                   ...,
                   [ 2.404, 49.008],
                   [ 2.387, 49.074],
                   [ 1.825, 49.096]], shape=(34806, 2))

# 当前抽样代码(每次结果不同)
sel = np.random.choice(points.shape[0], size=6, replace=False)
points_sampled = points[sel]

最简解决方法

核心是固定随机数生成器的种子,让随机抽样的结果可复现,有两种常用方式:

方式一:设置全局随机种子

在抽样代码前调用np.random.seed()传入固定数值(数值可任意指定),之后所有np.random相关操作都会基于这个种子生成固定序列:

np.random.seed(42)  # 固定种子
sel = np.random.choice(points.shape[0], size=6, replace=False)
points_sampled = points[sel]

每次运行这段代码,sel的索引都会完全一致,因此points_sampled结果固定。

方式二:使用独立随机生成器(推荐)

如果不想影响全局随机状态,可以创建一个独立的RandomState实例,用它执行抽样:

rng = np.random.RandomState(42)  # 基于固定种子创建生成器
sel = rng.choice(points.shape[0], size=6, replace=False)
points_sampled = points[sel]

这种方式不会干扰其他地方的随机操作,更适合复杂项目场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 20:27:20