如何获取numpy array前N个最大值
更新时间:2021年05月14日 11:41:27 作者:upDiff
这篇文章主要介绍了获取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_like Array to sort. axis : int or None, optional Axis along which to sort. The default is -1 (the last axis). If None, the flattened array is used. kind : {‘quicksort', ‘mergesort', ‘heapsort', ‘stable'}, optional Sorting algorithm. order : str or list of str, optional When 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, int Array 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 np top_k=3 arr = 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 np a = 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]<a[4]<a[2]<a[1]<a[3]
补充:利用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]
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Python中多进程处理的Process和Pool的用法详解
在Python编程中,多进程是一种强大的并行处理技术,Python提供了两种主要的多进程处理方式:Process和Pool,本文将详细介绍这两种方式的使用,希望对大家有所帮助2024-02-02python HTTP协议相关库requests urllib基础学习
这篇文章主要介绍了python HTTP协议相关库requests urllib基础学习,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-06-06
最新评论