# 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")