需要两个数据包,里边有许多数字图像,像这样:
import numpy as np
import operator
from os import listdir
"""分类函数"""
def classfy0(inX, dataSet, labels, k): # 参数分别为测试样本,训练样本,训练样本标签,近邻个数
dataSetSize = dataSet.shape[0] # 返回行列数,0为行,列为1
diffMat = np.tile(inX, (dataSetSize, 1)) - dataSet # tile是按照某个方向复制元素,行方向复制四行,列方向复制一行,然后减去每个训练样本值
sqDiffMat = diffMat ** 2 # 乘方运算
sqDistances = sqDiffMat.sum(axis=1) # 轴为1的方向(横向)求和
distances = sqDistances ** 0.5 # 乘方运算,等同于开根号
sortedDistIndicies = distances.argsort() # 返回从小到大排序的索引值(原数组不动)
classCount = {} # 字