Python中numpy.argsort()函数用法详解与索引提取技巧

林见深
林见深
发布时间:2026-10-13| 2人浏览过
原创

本文详细介绍Python中numpy库的argsort()函数,通过实例演示如何将数组元素从小到大排序并提取对应索引。重点解析利用负数索引(如[[wp:a2]])快速获取最大值或特定排名元素的方法,适用于批量数据处理及模型分类场景。

在利用Python对训练好的caffemodel进行大量图片的批处理分类时,笔者在学习过程中遇到了argsort函数。为了明确其功能,查阅了相关资料并在Python环境中进行了实测,基本掌握了其应用方式。为避免日后遗忘,特此记录以加深理解。(注:笔者为Python初学者,理解可能较为浅显)

1. 首先定义一个数组数据

import numpy as np
x=np.array([1,4,3,-1,6,9])

2. 接下来观察argsort()函数的具体功能表现:

x.argsort()

设定输出变量y=array([3,0,2,1,4,5])。

分析可知,argsort()函数的作用是将原数组x中的元素按从小到大顺序排列,并提取这些元素在原数组中的索引(index),最终输出到y中。例如:x[3]的值为-1,是最小值,因此y[0]=3;x[5]的值为9,是最大值,因此y[5]=5。

上述原理较为直观,不熟悉的朋友可以进入Python环境自行验证。

3. 在实际程序中遇到了类似np.argsort()[num]的写法,起初难以理解,遂在Python环境中进行单独测试:

注:此处num的绝对值需小于或等于x中元素的个数。

当num>=0时,np.argsort()[num]就可以理解为y[num];

当num<0时,np.argsort()[num]就是把数组y的元素反向输出,例如np.argsort()[-1]即输出x中最大值对应的index,np.argsort()[-2]即输出x中第二大值对应的index,依此类推。

直观的实验结果如下,基于上述示例进行验证:

这是当num为负值时的输出结果。

这是num>=0时的输出结果。

总结:通过上述阐述,应对argsort()的用法有了初步了解。由于未查阅官方文档,理解可能存在不足,恳请指正。也希望大家多多支持本站。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。