如何使用numpy random seed实现类似random.sample的无重复随机数生成功能
Numpy实现带随机种子的无重复随机数生成
以下是符合需求的实现方案:
- 核心依赖numpy的随机数生成能力,通过固定随机种子保证结果可复现,设置无放回抽样确保数值不重复
- 你之前用标准库
random.sample()的逻辑完全可以平移到numpy实现中,仅需调整对应API参数即可
代码示例
import numpy as np # 设置固定随机种子,可替换为任意你需要的整数数值 np.random.seed(42) # 需求1:从0~99(共100个整数)中抽取100个无重复值,等价于生成随机全排列 block = np.random.choice(a=range(0, 100), size=100, replace=False) # 如果你需要输出原生Python列表而非numpy数组,可调用tolist()方法 # block = np.random.choice(a=range(0, 100), size=100, replace=False).tolist() # 需求2:如果你确实需要从0~100(共101个整数)中抽取100个无重复值,修改a参数即可 # block = np.random.choice(a=range(0, 101), size=100, replace=False)
关键参数说明
replace=False:该参数强制开启无放回抽样,是保证生成结果无重复值的核心配置,不可省略np.random.seed():传入固定整数后,每次运行代码都会生成完全一致的随机序列,满足可复现要求
内容的提问来源于stack exchange,提问作者Sumit Somani
相关产品推荐
相关产品推荐

