如何基于给定先验最值范围高效创建指定格式NumPy数组
NumPy生成指定范围三维数组的最简方案
直接使用NumPy内置的均匀分布采样接口np.random.uniform实现,无显式循环、代码量最小、运行效率最高。
核心代码
你只需要替换N为你需要的样本行数即可:
import numpy as np N = 1000 # 自定义需要的样本总数 M = np.random.uniform( low=[0.60, 1, 0.022], # 三个维度的最小值:x_min, y_min, z_min high=[0.80, 80, 0.024], # 三个维度的最大值:x_max, y_max, z_max size=(N, 3) )
实现说明
- 输出的
M是形状为(N, 3)的NumPy数组,结构完全匹配要求的[[x_0, y_0, z_0], [x_1, y_1, z_1], ...,[x_N, y_N, z_N]]格式 - 每一列的采样值严格落在对应维度的指定取值区间内,采样服从均匀分布,适配先验参数范围采样需求
- 底层为向量化C实现,即使N取到百万级也能毫秒级生成,性能远高于手写循环拼接的方案
- 如果需要固定生成结果保证可复现,在生成代码前加一行
np.random.seed(任意整数)即可,比如np.random.seed(42)
内容的提问来源于stack exchange,提问作者camarman
相关产品推荐
相关产品推荐

