我有一个数组 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)
(未经测试的代码,您的里程可能会有所不同)
关于python - 一定范围内的随机数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55602390/