Numpy 在python中从测试标签中删除零符

Numpy 在python中从测试标签中删除零符,numpy,machine-learning,prediction,missing-data,Numpy,Machine Learning,Prediction,Missing Data,我已经训练了一个模型,我想通过将错误划分到我的数据集的测试标签中,找到它的准确度(以百分比为单位)。但是,测试标签中有一些零值,这说明缺少这些值。因此,将相应的误差除以这些值将导致无穷大 mape = 100 * (errors / y_test) # Calculate and display accuracy accuracy = 100 - np.mean(mape) print('Accuracy:', round(accuracy, 2), '%.') 上面的代码段将打印“inf”作

我已经训练了一个模型,我想通过将错误划分到我的数据集的测试标签中,找到它的准确度(以百分比为单位)。但是,测试标签中有一些零值,这说明缺少这些值。因此,将相应的误差除以这些值将导致无穷大

mape = 100 * (errors / y_test)
# Calculate and display accuracy
accuracy = 100 - np.mean(mape)
print('Accuracy:', round(accuracy, 2), '%.')
上面的代码段将打印“inf”作为输出。我应该设法去掉“y_测试”系列中的零值。一种方法是找到该序列中零值的索引,然后删除错误数组中的相应值

现在,我想知道如何编写一个代码来删除第二列等于零的元素


如果您知道一些更明智的方法来计算模型精度,同时注意缺少的值,请向他们指出

我将使用
y\u test
为两个数组创建布尔索引:

idx = y_test != 0
mape = 100 * (errors[idx] / y_test[idx])
# Calculate and display accuracy
accuracy = 100 - np.mean(mape)
print('Accuracy:', round(accuracy, 2), '%.')

非常感谢你。那正是我想要的
idx = y_test != 0
mape = 100 * (errors[idx] / y_test[idx])
# Calculate and display accuracy
accuracy = 100 - np.mean(mape)
print('Accuracy:', round(accuracy, 2), '%.')