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

Posted

技术标签:

【中文标题】如何在 14x14 numpy 矩阵中找到 10 个最高数字的索引? [复制]【英文标题】:How to find the indexes of 10 highest numbers in a 14x14 numpy matrix? [duplicate] 【发布时间】:2016-06-26 01:35:29 【问题描述】:

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

例如:

[[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])

【讨论】:

以上是关于如何在 14x14 numpy 矩阵中找到 10 个最高数字的索引? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 python 中找到 numpy 矩阵的长度(或尺寸、大小)? [复制]

如何在 NumPy 中创建一个空数组/矩阵?

NumPy:在子矩阵/块和相应的行、列索引中找到最小值

NumPy:在矩阵中找到 N 个最大元素

如何仅使用 numpy 从距离矩阵中提取数据点?

如何将 Numpy 格式的列表转换为 python