如何有效地找到14x14 numpy矩阵中10个最高数的索引?我希望输出是索引的元组,其中最大数字的位置按最高数量的顺序打印到最少。我尝试使用argsort,但只需要在一个轴上进行排序。这不是重复的,因为它特别要求二维数组,而另一个问题的答案仅适用于1d数组。
例如:
[[0,1,2],
[3,4,5],
[6,7,8]]
(2,2,8)
(1,2,7)
(0,2,6)
答案 0 :(得分:1)
您可以展平数组,进行排序并输出前10个。然后同时添加原始索引
new_list = []
for i, row in enumerate(matrix):
for j, col in enumerate(row):
new_list.append((col, (i,j)))
sorted_list = sorted(new_list, key=lambda x: x[0], reverse=True)
top_ten = sorted_list[:10]
for i in top_ten:
print "Value: {0}, Index: {1}".format(i[0], i[1])