为什么numpy.random.normal在ndarray中给出一些负值?

时间:2019-03-02 07:01:45

标签: python numpy normal-distribution

我知道对于任何选定的平均值和标准偏差值,正态分布始终大于0。

>> np.random.normal(scale=0.3, size=x.shape)
[ 0.15038925 -0.34161875 -0.07159422  0.41803414  0.39900799  0.10714512
  0.5770597  -0.16351734  0.00962916  0.03901677]

此处的平均值为0.0,标准偏差为0.3。但是ndarray中的某些值是负数。我对正态分布曲线始终为正的解释是否错误?

编辑:
但是在matlab中使用normpdf函数总是给出一个正值数组,我猜这是概率密度函数(y轴)。而numpy.random.normal给出正值和负值(x轴)。现在,这很令人困惑。

2 个答案:

答案 0 :(得分:0)

从正态分布生成的值确实为负值。

例如,对于平均0正态分布。我们需要一些正值和负值以使平均值为零。同样,对于均值为0的正态分布,它同样可能为正或负。

实际上,任何实数都具有正概率。您可能会对概率密度函数始终为正感到困惑。

答案 1 :(得分:0)

请不要期望概率平均值为0,因为这没有任何意义,您希望您的随机事件永远不会发生。 尝试使用np.random.normal(0.5, 0.3, 1000)之类的东西来表达您的正态概率分布。

另外,请仔细研究Normal Distribution的数学,以便能够轻松构建概率密度函数。