import numpy as np
import operator
def createDataSet():
group =np.array([[1.0,1.1],[1.0,1.0],[0.0,0.0],[0,0.1]])
labels=['A','A','B','B']
return group,labels
def classify0(inX,dataSet,labels,k):
dataSetSize=dataSet.shape[0]
diffMat=np.tile(inX,(dataSetSize,1))-dataSet
sqDissMat=diffMat**2
sqDistances=sqDissMat.sum(axis=1)
distance=sqDistances**0.5
sortedDistIndicies=distance.argsort()
classCount={}
for i in range(k):
voteLabel=labels[sortedDistIndicies[i]]
classCount[voteLabel]=classCount.get(voteLabel,0)+1
sortedClassCount=sorted(classCount.items(),key=operator.itemgetter(1),reverse=True)
return sortedClassCount[0][0]
if __name__ =='__main__':
group,labels=createDataSet()
result=classify0([0.0,0.0],group,labels,3)
print(result)
np.tile(inX,(dataSetSize,1)):将intX按行重复dataSize次
‘0’按列进行计算
‘1’按行进行计算