2016-03-10 61 views
-1

如何有效地找到14×14的numpy矩陣中10個最高數字的索引?我希望輸出是最大數字所在索引的元組按照最高數字的順序打印到最小。我嘗試使用argsort,但只需要在一個軸上排序。這不是重複的,因爲它特別要求2d數組,而另一個問題的答案只適用於1d數組。如何在14x14的numpy矩陣中找到10個最高數字的索引?

例如:

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

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

回答

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]) 
相關問題