Assign codes from a code book to observations.
Assigns a code from a code book to each observation. Each observation vector in the ‘M’ by ‘N’ obs array is compared with the centroids in the code book and assigned the code of the closest centroid.
The features in obs should have unit variance, which can be acheived by passing them through the whiten function. The code book can be created with the kmeans algorithm or a different encoding algorithm.
Parameters :  obs : ndarray
code_book : ndarray


Returns :  code : ndarray
dist : ndarray

Notes
This currently forces 32bit math precision for speed. Anyone know of a situation where this undermines the accuracy of the algorithm?
Examples
>>> from numpy import array
>>> from scipy.cluster.vq import vq
>>> code_book = array([[1.,1.,1.],
... [2.,2.,2.]])
>>> features = array([[ 1.9,2.3,1.7],
... [ 1.5,2.5,2.2],
... [ 0.8,0.6,1.7]])
>>> vq(features,code_book)
(array([1, 1, 0],'i'), array([ 0.43588989, 0.73484692, 0.83066239]))