使用随机数生成器为多个操作设置边界限制

Setting boundary limits to multiple operations with random number generators

我相信我的问题真的很简单,一定有一个非常简单的方法来解决这个问题,但是由于我对 Python 很陌生,所以我无法自己解决。

我将 post 一个我正在使用的虚构示例,而不是我目前正在处理的复杂脚本,以防您想自己测试。请考虑以下事项:

 import numpy as np 

 nData = 100
 sigma_alpha = np.array([1,1])
 alpha = [-23,0]
 data_alpha1 = np.random.randn(nData)*sigma_alpha[0]+alpha[0]
 data_alpha2 = np.random.randn(nData)*sigma_alpha[1]+alpha[1]

我的问题是我必须将 data_alpha1 和 data_alpha2 限制为 -25 作为下限和 25 作为上限。这意味着,两个数组中的所有元素都必须在上述值之间。所以,我正在寻找的解决方案还必须涉及一种情况,其中 data_alpha1,2<25 的所有元素如下,其中多个值将超出25:

 nData = 100
 sigma_alpha = np.array([1,1])
 alpha = [25,0]
 data_alpha1 = np.random.randn(nData)*sigma_alpha[0]+alpha[0]
 data_alpha2 = np.random.randn(nData)*sigma_alpha[1]+alpha[1]

变量 alpha 在一个循环中,因此它具有动态值并且不断更新。

总结一下:我一直想弄清楚的是一种方法来确保 data_alpha1 和 data_alpha2 returns 的值仅在 -25 和 25 之间,并且在在这种情况下,任何值都不符合施加的条件,则应将其设置为它超过的最接近的边界值。例如,如果 alpha_data1 <-25 的元素,则应将其替换为 -25。

希望我能做到简洁明了。非常感谢您对此的帮助!

像这样:

data_alpha1[data_alpha1 > 25] = 25
data_alpha1[data_alpha1 < -25] = -25