首页 > 解决方案 > 仅在numpy中使用random.random获取-2和2之间的浮动随机数?

问题描述

我想得到一个介于 -2 和 +2 之间的随机浮点值。我能做的最好的是:

my_array = [-1, 1]
change_sign = []
for i in range(6):
  change_sign.append(my_array[np.random.randint(low=0, high=2)] * 2)
print(change_sign)
results = np.random.random([6]) * change_sign

期望的输出:

[-1.14, -0.25, 0.33, 1.75, 1.99, -0.83]

但我觉得它可以更容易地完成。我不想使用其他 numpy 方法(如 uniform),只是 random 和 randint。

我怎么能那样做?

标签: pythonnumpy

解决方案


np.random.random返回 0.0 到 1.0 之间的随机浮点数

所以你可以乘以 4 并减去 2,所以范围是 -2.0 到 2.0

np.random.random(6)*4 - 2
array([ 1.41044053, -0.97521584,  1.55446329, -0.54314241, -1.55691897,
        0.28276924])

推荐阅读