最近遇到了需要将两个数组进行比较的问题,原代码如下:
Distance = np.load('Distance.npy') # 距离矩阵
index = np.argmin(Distance, axis=-1) # 行方向上最小值索引
recog_rate = np.sum(index + 1 == recog_idx) / all_testnum # 计算识别率
运行完识别率recog=3.0,显然,哪里出了问题
debug后发现,index是shape=(5874,)的ndarray类型,而recog_idx是shape=(5874,1)的ndarray类型,这样两个数组进行比较的过程就是,recog_idx[0,0](也就是[1])与index整个数组进行比较(np.sum的值为3),然后recog_idx[1,0](第二个元素[1])再与index整个数组进行比较(np.sum的值仍为3),依次进行下去,直到recog_idx中的每个元素都与index进行了比较。这与我想要的比较截然不同。
下面看一下两个数组的详细信息