繁体   English   中英

查找二维 Numpy Array 的前 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]])。

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

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

谢谢。

您可以使用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) 可以获得每个子数组的最大值。

在这里: 如何获得 NumPy 数组中 N 个最大值的索引? 是如何获得 N 个最大元素的索引的解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM