import numpy as np
from math import sqrt
from collections import Counter
x=np.random.randint(1,5,size=(4,5))
x
x=np.reshape(x,(-1,2))
y=np.random.randint(0,2,10)#创建一个一维数组,并且指定范围为0,1,大小为10
print(y.shape)
x=np.array(x)
y=np.array(y)
x_test=(5,6)
distance=[]
for i in x:
d=sqrt((i[1]-x_test[1])**2+(i[0]-x_test[0])**2)
distance.append(d)
# plt.scatter(x[y==0,0],x[y==0,1],color='blue')#这句话的意思就是将y为0的点画出来
# plt.scatter(x[y==1,0],x[y==1,1],color='red')
# plt.scatter(x_test[0],x_test[1],color='green')#将这个点单独给画出来
# plt.axis([-10,10,-10,10])
# plt.show()
distance_x=[i for i in range(len(distance))]#返回一个list的大小用的是len
nearest=np.argsort(distance)#对这些数进行下标排序,然后再返回
k=6
topK_y=[y[i] for i in nearest[:k]]#取前k个数,
print(topK_y)
votes=Counter(topK_y)
# plt.scatter(distance_x,distance)
# plt.show()
votes.most_common(1)#返回一个列表,这是最多的那个
print(votes)
predict_=votes.most_common(1)[0][0]
print(predict_)