仅在numpy中使用random.random获得-2到2之间的浮动随机数?

问题描述 投票:0回答:1

我想获得一个介于-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方法(统一的莱克),只是随机和randint。

我该怎么做?

python numpy
1个回答
0
投票

[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])

0
投票

要获得'a'(= -2)和'b'(= 2)之间的'n'(= 10)个随机数,请使用以下公式:

n = 10
a = -2
b = 2

r = a + (b - a) * numpy.random.random(n)

结果:

array([ 0.29379447,  1.0017837 ,  0.46310858, -1.79242304,  1.04047713,
       -0.71521254,  0.32970214,  1.16248318, -1.12456574, -0.47470759])
© www.soinside.com 2019 - 2024. All rights reserved.