# sample data from some Gaussian with given covariance and add mean covariance=array([[4,2],[2,4]]) data=randn(100,2).dot(cholesky(covariance)) + array([2,3]) # plot plot(data[:,0],data[:,1], 'o') _=axis("equal") from scipy.linalg import solve_triangular # remove mean and whiten dataset data-=mean(data, 0) L=cholesky(cov(data.T)) data=solve_triangular(L, data.T, lower=True).T dim=shape(data)[1] # plot plot(data[:,0],data[:,1], 'o') _=axis("equal")