查找二维 Numpy Array 的前 3 个最大值的行索引号和值

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

  • 我想在上面的二维数组中找到前 3 个最大值 ==> 17,16,15
  • 我还想在数组中获取这些值的行索引号 ==> 行索引 = 2,1,3

有人可以告诉我如何实现这一目标吗?

谢谢。

shengsheng321 回答:查找二维 Numpy Array 的前 3 个最大值的行索引号和值

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

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

>>> arg[:3] // 3
array([2,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 个最大元素的索引的解决方案。

本文链接:https://www.f2er.com/11634.html

大家都在问