[英]Uniformly distributed data in d dimensions
如何在Python中生成均勻分布的[-1,1] ^ d數據? 例如d是一個類似10的維度。
我知道如何生成均勻分布的數據,例如np.random.randn(N),但是維度問題讓我很困惑。
假設各個坐標的獨立性,則以下將在[-1, 1)^d
生成一個隨機點
np.random.random(d) * 2 - 1
以下將生成n
觀測值,其中每一行都是一個觀測值
np.random.random((n, d)) * 2 - 1
正如已經指出的那樣,randn產生正態分布的數(又名高斯)。 要獲得均勻分布,您應該使用“統一”。
如果您只想一次采樣10個均勻分布的數字,則可以使用:
import numpy as np
x = np.random.uniform(low=-1,high=1,size=10)
或者,如果您想一次生成很多(例如100個),則可以執行以下操作:
import numpy as np
X = np.random.uniform(low=-1,high=1,size=(100,10))
現在X [0],X [1],...的長度均為10。
您可以導入random
模塊並調用random.random
以從[0,1)獲得隨機樣本。 您可以將其加倍並減去1,以從[-1,1)中獲得樣本。
以這種方式繪制d值,並且元組將是從立方體[-1,1)^ d的均勻繪制。
沒有numpy的:
[random.choice([-1,1]) for _ in range(N)]
可能有理由使用numpy的內部機制,或手動使用random()
等。但是這些是實現細節,並且還與隨機數生成如何分配操作系統提供的熵比特有關。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.