正常分布与scipy

时间:2016-04-21 13:41:30

标签: python-3.x

有人可以告诉我为什么这两个函数会返回不同的结果:

from scipy.stats import norm
import math

def gaussian(x, mean, variance):
    return math.exp(-(x-mean)**2/2*variance**2)/math.sqrt(2*math.pi*variance**2)

>>> gaussian(2,0,2)
6.691511288244268e-05
>>> norm.pdf(2,0,2)
0.12098536225957168

1 个答案:

答案 0 :(得分:0)

(2.0*variance**2)周围需要括号(否则,variance**2是分子的一部分而不是分母):

def gaussian(x, mean, variance):
    return math.exp(-(x-mean)**2/(2.0*variance**2))/math.sqrt(2*math.pi*variance**2)

有了这个改变,

In [136]: norm.pdf(2,0,2)
Out[136]: 0.12098536225957168

In [137]: gaussian(2,0,2)
Out[137]: 0.12098536225957168