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

标签 python arrays python-3.x numpy random

我有一个数组 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_mcparams_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/

相关文章:

python - 如何将 pandas 数据帧(日期,值)拆分为两个单个数组 X=Date 和 y=Value?

Java程序跳过for循环

c - 将数组传递给 C 中的 pthread_create

python - 交换 Pandas 字符串列中的两个子字符串

python - 如何在python pwntools中指定进程?

python - 在python中查找单词结尾的索引

python - 删除重复的电子邮件

c - 将 malloc 用于结构 block

python-3.x - 使用 pandas 数据帧列中的字典对象重新分配子字符串

python - OperatorNotAllowedInGraphError : using a `tf.Tensor` as a Python `bool` is not allowed: (error in tf Cycle GAN)