处理实验结果的时候想返回一个最大的指标,但是数据集里存在满分指标作为对比,所以在实际试验指标不能满分的前提下,实际上最大的指标是排名第二的,但不知道满分指标的具体个数,所以不能使用传统的排序(快排、选择、,冒泡)获取第二名。
解决思路:假设指标范围为1~5。遍历一遍(我用了tolist()把ndarray转换成了list再进行操作)list,把所有满分指标修改或剔除,然后第二次遍历新list,找到最大值及其索引值。
代码:
pf = result.flatten().tolist() #先变成一维,再转换为list for i in range(pf.count(5)): #获取最大值(5)出现的次数 max_index = pf.index(5) #获取首次最大值(5)出现的坐标 pf[max_index]=3 #修改最大值(5)为一个较小值(3) print("max_score is %f,index is %d" % (max(pf),pf.index(max(pf))))