使用随机数生成器为多个操作设置边界限制
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
我相信我的问题真的很简单,一定有一个非常简单的方法来解决这个问题,但是由于我对 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