Python中的NumPy.nonzero()方法2025年3月5日 | 阅读 4 分钟 理解 Python 的 NumPy.nonzero() 方法NumPy (Numerical Python 的简称) 是一个强大的 Python 数值计算包。它支持大规模、多维数组和矩阵,以及一套用于有效控制这些数组的数学函数。NumPy 的众多有用函数之一就是 numpy.nonzero()。 nonzero() 方法返回数组中所有非零元素的索引。当您想识别满足特定条件的元素的索引或从数组中提取非零元素时,它特别有用。 以下是如何使用 nonzero() 函数 代码 输出 Indices of non-zero elements: (array([1, 2, 4, 5]),) 在这种情况下,nonzero() 方法会生成一个元组,其中包含一个包含非零元素的索引数组。在本例中,数组 '[0, 1, 2, 0, 3, 5, 0]' 在索引 1、2、4 和 5 处有非零值。 nonzero() 也兼容多维数组。在这些情况下,它会生成一个由数组组成的元组,每个数组表示沿着特定轴的非零元素的索引。 代码 输出 Indices of non-zero elements in 2D array are: (array([0, 1, 2, 2]), array([0, 1, 0, 1])) 在这里,nonzero() 函数返回两个数组。第一个数组包含非零元素的行索引,第二个数组包含列索引。例如,(0, 0) 对应于元素 1,(1, 1) 对应于元素 2,依此类推。 让我们更深入地了解 Python 的 numpy.nonzero() 函数。 1. NumPy 的布尔索引当布尔索引与 numpy.nonzero() 函数结合使用时,通常的做法是检索满足给定标准的数组中的元素。例如 代码 输出 Indices of positive elements: (array([0, 2, 5]),) 此示例中的布尔掩码是通过 'arr_one > 0' 创建的,其中 True 表示大于 0 的元素,否则为 False。nonzero() 方法然后返回掩码为 True 的索引。 2. 稀疏表示numpy.nonzero() 函数还可以获得数组的稀疏表示。此函数对于处理具有高比例零元素的巨大数组非常有帮助。您可以只保存非零元素及其索引,而不是整个元素集。 3. 多个非零条件借助 nonzero() 函数和布尔索引,您可以应用多个条件并检索满足这些条件的元素的索引 代码 输出 Indices of positive and odd elements: (array([2, 3]),) 在本例中,布尔掩码是通过“?(arr_one > 0)?&?(arr_one % 2!= 0)? ”创建的,其中 True 表示既是奇数又是正数的元素。 4. 性能由于 NumPy 经过优化的 C 语言实现,使用 numpy.nonzero() 通常比手动遍历数组来检测非零元素更有效,尤其是在处理大型数组时。 5. 其他应用numpy.nonzero() 不仅可用于识别非零元素,还可用于各种其他任务,例如根据特定标准屏蔽数组、动态选择数组中的元素以及定位满足特定条件的索引。 6. 处理多维数组numpy.nonzero() 函数能够很好地处理多维数组。当应用于多维数组时,它会返回沿每个轴独立对应的非零元素的索引。 代码 输出 Indices of nonzero elements in 2D array are: (array([0, 0, 1, 1, 2, 2]), array([0, 2, 0, 1, 0, 2])) 在此示例中,第一个数组对应于行索引,第二个数组对应于 2D 数组中非零元素的列索引。 7. 计算非零元素通过将 numpy.nonzero() 与 'numpy.count_nonzero()' 或 'len()' 函数结合使用,您可以快速计算数组中的非零元素数量。 代码 输出 Number of nonzero elements: 4 总而言之,Python 中的 NumPy 库有一个名为 numpy.nonzero() 的函数,可用于快速查找数组中非零元素的索引。它的用途广泛,包括管理多维数组、布尔索引、计算非零元素和展平索引。通过利用 numpy.nonzero(),开发人员可以改进计算工作流,加快数组操作活动,并提高数值计算应用程序的执行效率。对于任何从事数据分析、科学计算或机器学习项目的 Python 软件工程师来说,numpy.nonzero() 都是一项必不可少的工具。它可以单独使用,也可以与其他 NumPy 函数结合使用,为处理数组中的非零元素提供清晰高效的方法。 |
介绍:在本教程中,我们将学习如何在 Python 中读写 XML 文件。XML 或可扩展标记语言是一种专门的语言,旨在易于人类和计算机解释。一种语言描述了以特定格式编码数据的过程。XML...
7 分钟阅读
? 文本文件比较是编程中的常见任务,通常用于版本控制、数据验证和质量保证等任务。凭借其多功能库,Python 提供了比较两个文本文件的有效方法。本文将探讨 Python 提供的各种方法和库...
阅读 6 分钟
?简介:在本教程中,我们将学习如何在 Python 中实现 KNN 算法。KNN 是一种简单的监督机器学习 (ML) 算法。监督学习可用于分类或回归,并经常用于缺失值插补。KNN 算法是基于...
阅读 6 分钟
简介 在 Python 中可以捕获 IOError 异常,以处理与输入和输出操作(例如文件处理)相关的故障。可以使用 try-except 块来捕获 IOError。你将可能导致 IOError 的代码放在 try 块中。在...
阅读 4 分钟
如果你是哈利·波特的粉丝,你可能熟悉著名的隐形斗篷,它是一种神奇的服装,可以让哈利·波特随意消失。在本文中,我们将用几行 Python 代码创建类似的效果...
阅读 10 分钟
? 本文将探讨从给定字符串中获取 Python 日期的各种技术。在探索各种潜在解决方案之前,将彻底解释问题。从字符串中提取日期问题:我们有一个显示日期的字符串,格式为“YYYY-MM-DD”。要……
5 分钟阅读
? 在当今的数字时代,网络安全对于保护敏感信息和基础设施免受恶意行为者的侵害至关重要。Python 以其简单性、多功能性和强大的库,已成为网络安全领域的一个强大工具。本文探讨了 Python 在网络安全中的各种用法...
阅读 4 分钟
简介:在本教程中,我们将学习 Python 中 Lock 和 Rlock 对象之间的区别。线程是进程可以调度执行的地方。它也是操作系统中可以完成的最小工作量...
阅读 8 分钟
在本教程中,我们将介绍各种 Python 项目,适合从初学者到经验丰富的开发人员的每个人。这些项目旨在为您提供 Python 的实践经验,让您开发实用的应用程序。无论是刚开始接触...
阅读 22 分钟
? Matplotlib 是一个用于创建数据可视化的 Python 库,提供了许多用于生成静态、动画和交互式绘图的工具。在使用散点图时,代表单个数据点的标记至关重要。Matplotlib 允许您自定义这些标记的各种方面,包括它们的...
阅读 3 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India