Python 尝试运行基于knn algo(手写识别)的代码时出错
ValueError:包含多个元素的数组的真值不明确。使用a.any()或a.all() 尝试使用knn算法预测数字时出现此错误Python 尝试运行基于knn algo(手写识别)的代码时出错,python,Python,ValueError:包含多个元素的数组的真值不明确。使用a.any()或a.all() 尝试使用knn算法预测数字时出现此错误 data_directory = "../train-images/train-images.idx3-ubyte" label_directory = "../train-labels/train-labels.idx1-ubyte" data_x = npx.convert_from_file(data_directory) labels = npx.conver
data_directory = "../train-images/train-images.idx3-ubyte"
label_directory = "../train-labels/train-labels.idx1-ubyte"
data_x = npx.convert_from_file(data_directory)
labels = npx.convert_from_file(label_directory)
def dist(x1,x2):
return np.sqrt(sum(x1-x2)**2)
def knn(training_data,label,queryPoint,k=5):
vals = []
m = training_data.shape[0]
for i in range(m):
d = dist(queryPoint,training_data[i])
vals.append((d,label[i]))
vals = sorted(vals)
vals = vals[:k]
vals = np.array(vals)
new_vals = np.unique(vals[:,1],return_counts=True)
index = new_vals[1].argmax()
predict = new_vals[0][index]
return predict
pred = knn(data_x,labels,data_x[0])
print(int(pred))
ValueError回溯(最近一次调用)
在()
---->1 pred=knn(数据x、标签、数据x[0])
2个打印(内部(pred))
在knn中(训练数据、标签、查询点、k)
11 VAL.追加((d,标签[i]))
12
--->13 VAL=已排序(VAL)
14 VAL=VAL[:k]
15 VAL=np.数组(VAL)
ValueError:包含多个元素的数组的真值不明确。使用a.any()或a.all()
这是我每次尝试执行代码时都会遇到的错误
ValueError Traceback (most recent call last)
<ipython-input-40-da18b2a967c3> in <module>()
----> 1 pred = knn(data_x,labels,data_x[0])
2 print(int(pred))
<ipython-input-39-70c19a203161> in knn(training_data, label, queryPoint, k)
11 vals.append((d,label[i]))
12
---> 13 vals = sorted(vals)
14 vals = vals[:k]
15 vals = np.array(vals)
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()