from numpy import *
import operator
from os import listdir
#inX 要检测的数据
#dataSet 数据集
#labels 结果集
#k 要对比的长度
def classify0(inX, dataSet, labels, k):
dataSetSize = dataSet.shape[0] #计算有多少行
# tile(inX, (dataSetSize,1))生成对应inX维度的矩阵,方便做差
diffMat = tile(inX, (dataSetSize,1)) - dataSet
sqDiffMat = diffMat**2 #差求平方
sqDistances = sqDiffMat.sum(axis=1) # axis=0, 表示列 axis=1, 表示行。
distances = sqDistances**0.5 #开方
sortedDistIndicies = distances.argsort() #argsort()排序,求下标
classCount={}
for i in range(k):
voteIlabel = labels[sortedDistIndicies[i]] #通过下标索引分类
# 通过构造字典,记录分类频数
classCount[voteIlabel] = classCount.get(voteIlabel,0) + 1