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