from numpy import newaxis

data = load('iris.data', delimiter=',')
labels = data[:,4]
inputs = data[:,:4]

inputs = inputs-inputs.mean(0)[newaxis,:] #mean center using broadcasting
v,e = eig(cov(inputs))  
outputs = dot(inputs,e[:,:2])
scatter(outputs[:,0], outputs[:,1], 30, labels)


