簡體   English   中英

僅使用 numpy 中的 random.random 獲取 -2 和 2 之間的浮動隨機數?

[英]Get floating random numbers between -2 and 2 only using random.random in numpy?

我想得到一個介於 -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

所需的 output:

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

但我覺得它可以更容易地完成。 我不想使用其他 numpy 方法(如統一),只是隨機和隨機。

我怎么能那樣做?

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

要獲得 '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])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM