千家信息网

如何获取numpy的array中前N个最大值

发表于:2024-11-14 作者:千家信息网编辑
千家信息网最后更新 2024年11月14日,本文小编为大家详细介绍"如何获取numpy的array中前N个最大值",内容详细,步骤清晰,细节处理妥当,希望这篇"如何获取numpy的array中前N个最大值"文章能帮助大家解决疑惑,下面跟着小编的
千家信息网最后更新 2024年11月14日如何获取numpy的array中前N个最大值

本文小编为大家详细介绍"如何获取numpy的array中前N个最大值",内容详细,步骤清晰,细节处理妥当,希望这篇"如何获取numpy的array中前N个最大值"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

主要应用了argsort()函数,函数原型:

numpy.argsort(a, axis=-1, kind='quicksort', order=None)'''Returns the indices that would sort an array.Perform an indirect sort along the given axis using the algorithm specified by the kind keyword. It returns an array of indices of the same shape as a that index data along the given axis in sorted order.'''Parameters: a : array_likeArray to sort. axis : int or None, optionalAxis along which to sort. The default is -1 (the last axis). If None, the flattened array is used. kind : {'quicksort', 'mergesort', 'heapsort', 'stable'}, optionalSorting algorithm. order : str or list of str, optionalWhen a is an array with fields defined, this argument specifies which fields to compare first, second, etc. A single field can be specified as a string, and not all fields need be specified, but unspecified fields will still be used, in the order in which they come up in the dtype, to break ties. Returns: index_array : ndarray, intArray of indices that sort a along the specified axis. If a is one-dimensional, a[index_array] yields a sorted a. More generally, np.take_along_axis(a, index_array, axis=a) always yields the sorted a, irrespective of dimensionality.

示例:

import numpy as nptop_k=3arr = np.array([1, 3, 2, 4, 5])top_k_idx=arr.argsort()[::-1][0:top_k]print(top_k_idx)#[4 3 1]

补充:python topN / topK 取 最大的N个数 或 最小的N个数

import numpy as npa = np.array([1,4,3,5,2])b = np.argsort(a)print(b)

print结果[0 4 2 1 3]

说明a[0]最小,a[3]最大

a[0]

补充:利用Python获取数组或列表中最大的N个数及其索引

看代码吧~

import heapq a=[43,5,65,4,5,8,87]re1 = heapq.nlargest(3, a) #求最大的三个元素,并排序re2 = map(a.index, heapq.nlargest(3, a)) #求最大的三个索引    nsmallest与nlargest相反,求最小print(re1)print(list(re2)) #因为re2由map()生成的不是list,直接print不出来,添加list()就行了

结果:

re1:[87, 65, 43]

re2:[6, 2, 0]

读到这里,这篇"如何获取numpy的array中前N个最大值"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。

0