from numpy import *
import operator

def createDataSet():
    group = array( [[1.0, 1.1], [1.0, 1.0], [0,0], [0, 0.1] ])
    labels = ['A', 'A', 'B', 'B']
    return group, labels


def classify0(inX, dataSet, lables, k):
   dataSetSize = dataSet.shape[0]
   diffMat = tile(inX, (dataSetSize,1)) - dataSet
   sqDiffMat = diffMat ** 2
   sqDistances = sqDiffMat.sum(axis=1)
   distances = sqDistances ** 0.5
   sortedDistIndicies = distances.argsort()
   classCount = {}
   for i in range(k):
      voteIlabel = labels[sortedDistIndicies[i]]
      classCount[voteIlable] = classCount.get(voteIlabel,0) + 1
   sortedClassCount = sorted(classCount.iteritems(), key=operator.itergetter(1),reverse=True)
   return sortedClassCount[0][0]


def file2Matrix(filename):
    fr = open(filename)
    arrayOLines = fr.readlines()
    lineSize = len(arrayOLines)
    returnMat = zeros((lineSize, 3))
    classLabelVector = []
    index = 0
    for line in arrayOLines:
        line = line.strip()
        listFromLine = line.split('\t')
        returnMat[index,:] = listFromLine[0:3]
        classLabelVector.append(int(listFromLine[-1] ))
        index += 1
    return returnMat, classLabelVector



