Skip to main content
 首页 » 编程设计

python之一定范围内的随机数组

2025年05月04日20langtianya

我有一个数组 params 有错误 e_params 和数组可以是 params_bounds 的边界:

params = [0.2, 0.2] 
e_params = [0.1, 0.05] 
params_bounds = [(0.0, 1.0), (0.0, 1.0)] 

我想绘制一个params的随机高斯实现如下:

import numpy as np 
params_mc = np.random.normal(params, e_params) 

有什么方法可以确保结果 params_mc 在 params_bounds 指定的上限和下限内?

在此感谢您的帮助。

请您参考如下方法:

您可以使用 numpy.clip在给定范围内裁剪值。首先生成您需要的最小值和最大值数组,例如:

>>> lower_bound = numpy.asarray(param_bounds)[:, 0] 
>>> upper_bound = numpy.asarray(param_bounds)[:, 1] 

现在剪辑你的结果:

>>> numpy.clip(params_mc, lower_bound, upper_bound) 

(未经测试的代码,您的里程可能会有所不同)