如何獲取numpy array前N個(gè)最大值
主要應(yīng)用了argsort()函數(shù),函數(shù)原型:
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]
補(bǔ)充:python topN / topK 取 最大的N個(gè)數(shù) 或 最小的N個(gè)數(shù)
import numpy as np a = np.array([1,4,3,5,2]) b = np.argsort(a) print(b)
print結(jié)果[0 4 2 1 3]
說(shuō)明a[0]最小,a[3]最大
a[0]<a[4]<a[2]<a[1]<a[3]
補(bǔ)充:利用Python獲取數(shù)組或列表中最大的N個(gè)數(shù)及其索引
看代碼吧~
import heapq a=[43,5,65,4,5,8,87] re1 = heapq.nlargest(3, a) #求最大的三個(gè)元素,并排序 re2 = map(a.index, heapq.nlargest(3, a)) #求最大的三個(gè)索引 nsmallest與nlargest相反,求最小 print(re1) print(list(re2)) #因?yàn)閞e2由map()生成的不是list,直接print不出來(lái),添加list()就行了
結(jié)果:
re1:[87, 65, 43]
re2:[6, 2, 0]
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue學(xué)習(xí)筆記之動(dòng)態(tài)組件和v-once指令簡(jiǎn)單示例
這篇文章主要介紹了vue學(xué)習(xí)筆記之動(dòng)態(tài)組件和v-once指令,結(jié)合簡(jiǎn)單實(shí)例形式詳細(xì)分析了vue.js動(dòng)態(tài)組建點(diǎn)擊切換相關(guān)操作技巧,需要的朋友可以參考下2020-02-02Python中實(shí)現(xiàn)常量(Const)功能
這篇文章主要介紹了Python中實(shí)現(xiàn)常量(Const)功能,python語(yǔ)言本身沒(méi)有提供const,本文使用一個(gè)類(lèi)來(lái)實(shí)現(xiàn)常量定義功能,并介紹了使用方法,需要的朋友可以參考下2015-01-01Python中多進(jìn)程處理的Process和Pool的用法詳解
在Python編程中,多進(jìn)程是一種強(qiáng)大的并行處理技術(shù),Python提供了兩種主要的多進(jìn)程處理方式:Process和Pool,本文將詳細(xì)介紹這兩種方式的使用,希望對(duì)大家有所幫助2024-02-02django 外鍵創(chuàng)建注意事項(xiàng)說(shuō)明
這篇文章主要介紹了django 外鍵創(chuàng)建注意事項(xiàng)說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05python?HTTP協(xié)議相關(guān)庫(kù)requests urllib基礎(chǔ)學(xué)習(xí)
這篇文章主要介紹了python?HTTP協(xié)議相關(guān)庫(kù)requests urllib基礎(chǔ)學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06