我正在尝试实现多变量高斯pdf。我对**
运算符有一个奇怪的问题。代码是
def multi_var(x,mu,cov):
#Multivariate gaussian
print (1/2*np.pi)**(len(x)/2)
return(((1/2*np.pi)**(len(x)/2))/np.sqrt(np.abs(np.linalg.det(cov)))*np.exp(np.dot(np.matrix.transpose(x-mu),np.dot(np.linalg.inv(cov),(x-mu)))))
在命令中
>>> print multi_var(np.matrix('0;0;4'),np.matrix('0;0;6'),np.matrix([[.3,.67,8],[2,3,8], [2,.05,2]]))
2
[[ 0.]]
当我从命令行执行相同的代码时
>>> x=np.matrix('0;0;4')
>>> print (1/2*np.pi)**(len(x)/2)
我得到了
1.96870124322