生成完美的随机高斯数
我尝试生成一系列符合高斯分布的随机数。所以,我用了numpy.random.normal(mean, standard deviation, size)这个方法。不过,当我用numpy.histogram把这些数字转换成概率密度函数时,发现它和用matplotlib.mlab.normpdf生成的同样均值和标准差的高斯分布不一样。
我明白这可能是因为numpy.random.normal是随机抽样的结果。所以,这些数字的概率密度函数不可能完全符合高斯分布。
请问有没有什么建议,可以让我得到一系列均值和标准差都符合高斯分布的随机数,如果可能的话?我想要的数字数量是660个。
非常感谢任何建议和帮助。
祝好,
艾萨克
1 个回答
2
好吧,你可以通过“z-score”来处理样本,具体做法是先减去样本的平均值,然后再除以样本的标准差:
x = np.random.normal(0, 1, size=660)
x = (x - x.mean()) / x.std()
这样处理后,你的向量的平均值会变成0,标准差会变成1。但这并不意味着你会得到“完美的高斯随机数”。我觉得这个概念其实并不太合理。
如果你能告诉我你想用这个做什么,可能会更容易给你推荐其他的选择。