生成完美的随机高斯数

时间:2014-03-12 00:46:24

标签: python random numpy matplotlib normal-distribution

我试图用高斯分布生成一系列随机数。所以,我使用了numpy.random.normal(mean,standard deviation,size)。但是,当我使用numpy.histogram将这些数字转换为概率密度函数时,这与matplotlib.mlab.normpdf所做的具有相同均值和标准差的高斯分布不同。

我理解这可能是因为numpy.random.normal是随机抽样。所以,这些数字的PDF不可能是完全高斯的。

如果有可能,请您提供有关如何获得具有高斯PDF的均值和标准差的随机数系列的建议吗? 我试图获得的数字大小为660。

我真的很感激任何建议和帮助。

致以最诚挚的问候,

艾萨克

1 个答案:

答案 0 :(得分:1)

嗯,你可以" z-score"样本,减去样本均值,然后除以样本标准差:

x = np.random.normal(0, 1, size=660)
x = (x - x.mean()) / x.std()

这将使你的向量的均值为0,标准差为1.但这并不意味着你将拥有完全高斯随机数。"我不认为这是一个有意义的概念。

知道你想要使用它的应用程序会有所帮助,也许那么建议替代方案会更容易。