From 0e65dec242b3e2133ff4670b4bf12abc5c95a179 Mon Sep 17 00:00:00 2001 From: zhangchenghong <1598349064@qq.com> Date: Tue, 15 Oct 2024 10:56:59 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20function.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- function.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/function.py b/function.py index 39ad024..1f1b981 100644 --- a/function.py +++ b/function.py @@ -65,11 +65,12 @@ def classify(input_vector, dataSet, labels, k=3): # 根据距离排序并获取索引 sorted_indices = distances.argsort() # 选择距离最近的k个点 - k_nearest_labels = labels[sorted_indices[:k]] + k_nearest_labels = labels[sorted_indices[:k]].tolist() # 将 NumPy 数组转换为列表 # 统计k个点中各类别的数量 count = Counter(k_nearest_labels) # 返回数量最多的类别标签 return count.most_common(1)[0][0] + # 这里也写自己的代码实现 def load_dataset(directory): """ @@ -98,7 +99,8 @@ def load_dataset(directory): # 将特征列表和标签列表转换为numpy数组 feature_matrix = np.array(feature_list) label_array = np.array(label_list) - return feature_matrix, label_array# 这里还写自己的代码实现 + return feature_matrix, label_array +# 这里还写自己的代码实现 def img_to_vector(filename): """ 将二值图像转换为向量。 @@ -110,13 +112,14 @@ def img_to_vector(filename): - np.array: 二值图像向量。 """ # 初始化向量 - vector = np.zeros((1, 1024)) + vector = np.zeros((1024,)) # 创建一个一维数组 # 打开文件并逐行读取 with open(filename) as file: for i, line in enumerate(file): # 将每行的数字字符转换为整数并存储到向量中 - vector[0, i*32:i*32+32] = np.array([int(char) for char in line.strip()]) + vector[i*32:i*32+32] = np.array([int(char) for char in line.strip()]) return vector + if __name__ == "__main__": # 以下代码可用于测试,可自行随意修改 train_data, train_labels = load_dataset("trainingDigits")