def classify0(inX, dataSet, labels, k):
dataSetSize = dataSet.shape[0] #获得行数中的数组数量
diffMat = tile(inX, (dataSetSize,1)) - dataSet #将数据转换成标准格式,即dataset的格式,再减去dataset的数值
sqDiffMat = diffMat**2
sqDistances = sqDiffMat.sum(axis=1)
distances = sqDistances**0.5
sortedDistIndicies = distances.argsort() #根据距离从小到大排序,argsort()函数返回从小到大距离的索引值列表
classCount={}
for i in range(k): #选取前k个最近的样本点
voteIlabel = labels[sortedDistIndicies[i]] #选取第i个最近的点的标签
classCount[voteIlabel] = classCount.get(voteIlabel,0) + 1 #将标签和频率对应成字典,统计目标点出现在标签中加1
sortedClassCount = sorted(classCount.items(), key=operator.itemgetter(1), reverse=True) #将出现次数由大到小进行排序
return sortedClassCount[0][0] #返回出现出现次数中最高频率的标签
疑惑:算法是怎么根据距离的大小找到对应的标签的? 距离从小到大排序--距离的索引值从小到大排序--将标签对应索引值--再统计出现的标签次数,出现次数最多的标签就是要找的那个