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


Posted in Python onMay 14, 2021

主要应用了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 相关文章推荐
Python ldap实现登录实例代码
Sep 30 Python
python urllib urlopen()对象方法/代理的补充说明
Jun 29 Python
使用Python的toolz库开始函数式编程的方法
Nov 15 Python
Python的numpy库下的几个小函数的用法(小结)
Jul 12 Python
Django框架创建项目的方法入门教程
Nov 04 Python
原来我一直安装 Python 库的姿势都不对呀
Nov 11 Python
pycharm双击无响应(打不开问题解决办法)
Jan 10 Python
Python 输出详细的异常信息(traceback)方式
Apr 08 Python
使用Python操作MySQL的小技巧
Sep 10 Python
python实现简单文件读写函数
Feb 25 Python
Python基于Tkinter开发一个爬取B站直播弹幕的工具
May 06 Python
opencv检测动态物体的实现
Jul 21 Python
使用pandas模块实现数据的标准化操作
pandas 实现将NaN转换为None
May 14 #Python
Pandas||过滤缺失数据||pd.dropna()函数的用法说明
Python爬虫:从m3u8文件里提取小视频的正确操作
MATLAB 全景图切割及盒图显示的实现步骤
使用pandas或numpy处理数据中的空值(np.isnan()/pd.isnull())
May 14 #Python
PyQt5爬取12306车票信息程序的实现
You might like
怎么使 Mysql 数据同步
2006/10/09 PHP
CodeIgniter上传图片成功的全部过程分享
2013/08/12 PHP
使用GD库生成带阴影文字的图片
2015/03/27 PHP
Yii框架参数配置文件params用法实例分析
2019/09/11 PHP
基于jquery的图片的切换(以数字的形式)
2011/02/14 Javascript
jquery ajax 同步异步的执行 return值不能取得的解决方案
2012/01/08 Javascript
判断客户浏览器是否支持cookie的示例代码
2013/12/23 Javascript
javascript实现数字+字母验证码的简单实例
2014/02/10 Javascript
详解JavaScript对W3C DOM模版的支持情况
2015/06/16 Javascript
nodejs实现获取当前url地址及url各种参数值
2015/06/25 NodeJs
基于jQuery滑动杆实现购买日期选择效果
2015/09/15 Javascript
对于js垃圾回收机制的理解
2017/09/14 Javascript
angularjs中$http异步上传Excel文件方法
2018/02/23 Javascript
解决Mac node版本升级失败的问题
2018/05/16 Javascript
jQuery+PHP实现上传裁剪图片
2020/06/29 jQuery
js核心基础之闭包的应用实例分析
2019/05/11 Javascript
mock.js模拟数据实现前后端分离
2019/07/24 Javascript
vue 集成jTopo 处理方法
2019/08/07 Javascript
vue 使用async写数字动态加载效果案例
2020/07/18 Javascript
python基础教程之基本内置数据类型介绍
2014/02/20 Python
Python实现的一个简单LRU cache
2014/09/26 Python
Python判断操作系统类型代码分享
2014/11/22 Python
Centos7 Python3下安装scrapy的详细步骤
2018/03/15 Python
python买卖股票的最佳时机(基于贪心/蛮力算法)
2019/07/05 Python
Python字符串的修改方法实例
2019/12/19 Python
Jupyter Notebook 文件默认目录的查看以及更改步骤
2020/04/14 Python
套娃式文件夹如何通过Python批量处理
2020/08/23 Python
对CSS3选择器的研究(详解)
2016/09/16 HTML / CSS
学生档案自我鉴定
2013/10/07 职场文书
后勤人员自我鉴定
2013/10/20 职场文书
教师求职自荐书
2014/06/14 职场文书
会计专业应届生自荐信
2014/06/28 职场文书
六一文艺汇演开幕词
2015/01/29 职场文书
护士辞职信怎么写
2015/02/27 职场文书
西柏坡观后感
2015/06/08 职场文书
最新动漫情报:2022年7月新番定档超过30部, OVERLORD骨王第四季也在其中噢
2022/05/04 日漫