import numpy as np m = [[0.0, 4.5], [0.0, 4.5], [11.6, 4.4], [12.2, 4.3], [1.4, 3.9], [1.4, 3.9], [2.5, 3.8], [0.1, 3.8], [0.5, 5.1], [0.7, 5.2], [0.7, 5.1], [0.0, 4.6], [0.0, 4.6]] m_ = np.array(m) x_ = np.mean(m_[:,0]) y_ = np.mean(m_[:,1]) u = np.array([x_,y_]) r = [np.sqrt(np.var(m_[:,0])),np.sqrt(np.var(m_[:,1]))] x__ = (m_[:,0] - x_ )/r[0] y__ = (m_[:,1] - y_ )/r[1] nm = np.matrix([x__,y__]) cx = np.cov(nm) print cx.shape x = np.array([1.9,3]) a = 1/ np.sqrt(2*np.pi) #from scipy.stats import multivariate_normal #print multivariate_normal.pdf(x,u,cx) #-- We are ready to perform anomaly detection ...