有人可以告诉我为什么这两个函数会返回不同的结果:
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
答案 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