我有一个数组 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)
(未经测试的代码,您的里程可能会有所不同)
