如何获取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常用模块介绍
Nov 21 Python
Python获取当前公网ip并自动断开宽带连接实例代码
Jan 12 Python
PyQt5每天必学之关闭窗口
Apr 19 Python
Python 中导入csv数据的三种方法
Nov 01 Python
Django 视图层(view)的使用
Nov 09 Python
Python基于滑动平均思想实现缺失数据填充的方法
Feb 21 Python
python 画出使用分类器得到的决策边界
Aug 21 Python
Python操作excel的方法总结(xlrd、xlwt、openpyxl)
Sep 02 Python
python  logging日志打印过程解析
Oct 22 Python
python实现音乐播放器 python实现花框音乐盒子
Feb 25 Python
Python matplotlib可视化实例解析
Jun 01 Python
pip install命令安装扩展库整理
Mar 02 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
一个可以删除字符串中HTML标记的PHP函数
2006/10/09 PHP
PHPExcel读取EXCEL中的图片并保存到本地的方法
2015/02/14 PHP
php计算函数执行时间的方法
2015/03/20 PHP
PHP实现在线阅读PDF文件的方法
2015/06/23 PHP
隐藏Nginx或Apache以及PHP的版本号的方法
2016/01/03 PHP
PHP创建自己的Composer包方法
2018/04/09 PHP
在线编辑器中换行与内容自动提取
2009/04/24 Javascript
javascript与asp.net(c#)互相调用方法
2009/12/13 Javascript
基于jquery的下拉框改变动态添加和删除表格实现代码
2020/09/12 Javascript
JavaScript DOM 编程艺术(第2版)读书笔记(JavaScript的最佳实践)
2013/10/01 Javascript
JS实现仿百度输入框自动匹配功能的示例代码
2014/02/19 Javascript
jQuery动画出现连续触发、滞后反复执行的解决方法
2015/01/28 Javascript
javascript cookie的简单应用
2016/02/24 Javascript
JS实现六位字符密码输入器功能
2016/08/19 Javascript
Angular.js指令学习中一些重要属性的用法教程
2017/05/24 Javascript
vue2 自定义动态组件所遇到的问题
2017/06/08 Javascript
微信小程序下拉刷新界面的实现
2017/09/28 Javascript
微信小程序实现左右列表联动
2020/05/19 Javascript
[48:32]VGJ.T vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
py中的目录与文件判别代码
2008/07/16 Python
利用python爬取软考试题之ip自动代理
2017/03/28 Python
Python排序算法实例代码
2017/08/10 Python
Python格式化输出%s和%d
2018/05/07 Python
python 视频逐帧保存为图片的完整实例
2019/12/10 Python
浅析Python中字符串的intern机制
2020/10/03 Python
CSS3中:nth-child和:nth-of-type的区别深入理解
2014/03/10 HTML / CSS
关于box-sizing的全面理解
2016/07/28 HTML / CSS
《两个铁球同时着地》教学反思
2014/02/13 职场文书
2014年助理工程师工作总结
2014/11/14 职场文书
教学质量月活动总结
2015/05/11 职场文书
食品药品安全责任书
2015/05/11 职场文书
预备党员半年考察意见
2015/06/01 职场文书
MySQL 表空间碎片的概念及相关问题解决
2021/05/07 MySQL
微信小程序实现录音Record功能
2021/05/09 Javascript
如何用vue实现网页截图你知道吗
2021/11/17 Vue.js
Win11跳过联网界面创建本地管理账户的3种方法
2022/04/20 数码科技