在 NumPy 数组中查找元素索引的两种方法

江岸
江岸
发布时间:2026-10-12| 2人浏览过
原创

在数据处理中,定位特定数值在数组中的位置是常见需求。NumPy 提供了多种高效的方法来实现这一目标,其中 numpy.argwhere 和 numpy.nonzero 是最常用的两种。本文将通过具体示例,解析如何获取元素在多维数组中的索引坐标。

使用 numpy.argwhere 获取索引

numpy.argwhere 函数用于查找满足给定条件的数组元素的索引。它返回一个二维数组,其中每一行代表一个满足条件的元素在原始数组中的坐标。

以下代码演示了如何查找值为 7 的元素索引:

import numpy
# 创建示例数组
a = numpy.array(([3,2,1],[2,5,7],[4,7,8]))
# 查找值为 7 的元素索引
itemindex = numpy.argwhere(a == 7)
print(itemindex)
print(a)

运行上述代码后,itemindex 将输出一个包含所有值为 7 的元素坐标的数组。例如,若数组中有两个 7,输出将显示它们在二维空间中的具体位置(行号,列号)。

其他查找方法:numpy.nonzero

除了 argwhere,numpy.nonzero 也是获取索引的常用方法。与 argwhere 返回二维坐标数组不同,nonzero 返回一个元组,包含每个维度的索引数组。

import numpy
a = numpy.array(([3,2,1],[2,5,7],[4,7,8]))
# 获取值为 7 的索引
indices = numpy.nonzero(a == 7)
print(indices)

该方法返回的元组中,第一个数组包含所有满足条件的行索引,第二个数组包含对应的列索引。这种方式在处理高维数组时可能更为直观,但需要手动组合索引以获取坐标。

总结

在 NumPy 中查找元素索引时,numpy.argwhere 适合直接获取坐标列表,而 numpy.nonzero 则提供更底层的索引数组。根据具体需求选择合适的方法,可以提高代码的可读性和执行效率。

以上就是 NumPy 返回数组中元素索引的详细内容,更多关于 NumPy 数组操作的技术资料请关注本站其它相关文章!

相关标签:

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

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 算法库。