Python实现按指定区间生成随机值追加列并生成1000组数据集
实现方案
核心实现逻辑分三步:
- 建立输入值和对应随机数取值区间的映射关系,避免硬编码冗余逻辑
- 逐行批量生成符合区间要求的1000个随机值,和行首固定输入值拼接
- 按分隔格式将最终数据集写入本地文件
完整可运行代码
import numpy as np # 初始输入数值 inp_data = [10, 30, 60, 80] # 各输入值对应的随机数取值范围 range_map = { 10: (1, 2), 30: (3, 4), 60: (5, 8), 80: (3, 8) } # 需要生成的随机数据列数,对应1000组数据集 col_count = 1000 result = [] for val in inp_data: low, high = range_map[val] # 批量生成当前行所需随机数,比逐值循环生成效率更高 random_part = np.random.uniform(low, high, size=col_count) # 拼接行首固定值和随机数部分 full_row = np.concatenate([[val], random_part]) result.append(full_row) # 保存为本地文件,保留1位小数,制表符分隔对齐,和示例格式一致 np.savetxt("output_dataset.txt", np.array(result), fmt="%.1f", delimiter="\t")
补充说明
- 原代码中导入的
random库不需要使用,numpy自带的随机生成接口支持批量生成指定区间的均匀分布随机数,性能更优 - 如果需要调整随机数显示精度,修改
fmt参数即可,比如要保留2位小数就改成"%.2f" - 最终生成的
output_dataset.txt共4行,每行第一个值为输入的固定值,后续1000个值为对应规则生成的随机数,完全匹配需求格式
内容的提问来源于stack exchange,提问作者manas
相关产品推荐
相关产品推荐

