查找行的索引号和 2D Numpy 数组的前 3 个最大值的值

Find the index number of row and values of first 3 maximum values of 2D Numpy Array

我有一个 2D Numpy 数组 - arr2D = numpy.array([[11, 12, 13], [14, 15, 16], [17, 15, 11], [12, 14, 15]]).

有人可以告诉我如何实现吗?

谢谢。

您可以使用 np.argsort 对展平数组进行排序,然后将全局索引除以列数以检索行索引:

>>> arg = (-x).flatten().argsort()
array([ 6,  5,  4,  7, 11,  3, 10,  2,  1,  9,  0,  8])

>>> arg[:3] // 3
array([2, 1, 1])

第 2 行 (17)、第 1 行 (16) 和第 1 行 (15)。

使用 arr2D.max(axis=1) 可以得到每个子数组的最大值。

此处:How do I get indices of N maximum values in a NumPy array? 是如何获取 N 个最大元素的索引的解决方案。