簡體   English   中英

d維均勻分布的數據

[英]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.

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