如何在14x14 numpy矩阵中找到10个最高数的索引?

时间:2016-03-10 23:39:08

标签: python numpy

如何有效地找到14x14 numpy矩阵中10个最高数的索引?我希望输出是索引的元组,其中最大数字的位置按最高数量的顺序打印到最少。我尝试使用argsort,但只需要在一个轴上进行排序。这不是重复的,因为它特别要求二维数组,而另一个问题的答案仅适用于1d数组。

例如:

[[0,1,2],
 [3,4,5],
 [6,7,8]]

(2,2,8)
(1,2,7)
(0,2,6)

1 个答案:

答案 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])