当前位置: 首页 > 面试题库 >

Python-如何获取NumPy数组中N个最大值的索引?

唐博文
2023-03-14
问题内容

NumPy提出了一种通过来获取数组最大值的索引的方法np.argmax

我想要类似的事情,但是返回N最大值的索引

例如,如果我有一个数组,[1, 3, 2, 4, 5]function(array, n=3)将返回的索引[4, 3, 1]相对应的元素[5, 4, 3]


问题答案:

我想出的最简单的方法是:

In [1]: import numpy as np

In [2]: arr = np.array([1, 3, 2, 4, 5])

In [3]: arr.argsort()[-3:][::-1]
Out[3]: array([4, 3, 1])

这涉及数组的完整排序。我想知道是否numpy提供了一种进行部分排序的内置方法。到目前为止,我还没有找到一个。

如果此解决方案太慢(尤其是对于小型解决方案n),则可能值得考虑使用Cython进行编码。



 类似资料:
  • 我有两个数组 它们的长度都是4。City保存每个城市的名称,temp保存每个城市的平均温度。温度中的温度与城市中的城市顺序相同。所以我的问题是,我怎样才能得到temp中最大int的索引?我想打印出来

  • 问题内容: 我有一个二维NumPy数组。我知道如何获取轴上的最大值: 如何获得最大元素的索引?我想代替输出。 问题答案:

  • 问题内容: 我有一个int数组,想要获取最小10个(任何n个)元素的索引。我怎样才能做到这一点? 问题答案: 创建一个包含数字和索引的对象,然后创建这些对象的数组,然后执行Array.Sort(arrayset [],比较器)java docs 。然后,您可以从已排序的数组中挑选出前x个项目。 编辑:像这样… [我曾经用它来根据’距离’进行排序

  • 问题内容: 我有N维向量数组。 我正在使用sklearn的函数来计算距离值矩阵。注意,该矩阵关于对角线对称。 我需要与该矩阵中前N个值相对应的索引,因为这些索引将与成对索引相对应,它们代表了向量之间的最大距离。 我尝试做以获得每一行中最大值的索引,并获取每一列中最大值的索引,但是请注意: 和: 因为矩阵是关于对角线对称的,并且因为argmax返回它找到的具有最大值的第一个索引,所以我最终在行和列匹

  • 我有一个2D麻木阵列: 如何获取大于的元素的索引? 现在,我正在做以获取每个最大值的索引,结果是:。我如何实现上述操作?

  • 问题内容: 我有一个任意形状的numpy数组,例如: 以及最后一个轴上argmax的结果: 我想得到最大: 但无需重新计算所有内容。我试过了: 但是得到了: 问题答案: 您可以使用- 对于任何数量的维度的通用ndarray情况,如中所述,我们可以使用,就像这样-