关于numpy中np.nonzero()函数用法的详解


Posted in Python onFebruary 07, 2017

np.nonzero函数是numpy中用于得到数组array中非零元素的位置(数组索引)的函数。一般来说,通过help(np.nonzero)能够查看到该函数的解析与例程。但是,由于例程为英文缩写,阅读起来还是很费劲,因此,本文将其英文解释翻译成中文,便于理解。

解释

nonzero(a)

返回数组a中非零元素的索引值数组。

(1)只有a中非零元素才会有索引值,那些零值元素没有索引值;

(2)返回的索引值数组是一个2维tuple数组,该tuple数组中包含一维的array数组。其中,一维array向量的个数与a的维数是一致的。

(3)索引值数组的每一个array均是从一个维度上来描述其索引值。比如,如果a是一个二维数组,则索引值数组有两个array,第一个array从行维度来描述索引值;第二个array从列维度来描述索引值。

(4) 该np.transpose(np.nonzero(x))

函数能够描述出每一个非零元素在不同维度的索引值。

(5)通过a[nonzero(a)]得到所有a中的非零值

#a是1维数组
a = [0,2,3]
b = np.nonzero(a)
print(np.array(b).ndim)
print(b)

结果:
2
(array([1, 2], dtype=int64),)

说明:索引1和索引2的位置上元素的值非零。

#a是2维数组
a = np.array([[0,0,3],[0,0,0],[0,0,9]])
b = np.nonzero(a)
print(np.array(b).ndim)
print(b)
print(np.transpose(np.nonzero(a)))

结果:
2
(array([0, 2], dtype=int64), array([2, 2], dtype=int64))
[[0 2]
 [2 2]]

说明:

(1)a中有2个非零元素,因此,索引值tuple中array的长度为2。因为,只有非零元素才有索引值。

(2)索引值数组是2 维的。实际上,无论a的维度是多少,索引值数组一定是2维的tuple,但是tuple中的一维array个数和a的维数一致。

(3)第1个array([0, 2])是从row值上对3和9进行的描述。第2个array([2, 2])是从col值上对3和9的描述。这样,从行和列上两个维度上各用一个数组来描述非零索引值。

(4)通过调用np.transpose()函数,得出3的索引值是[0 2],即第0行,第2列。

#a是3维数组

a = np.array([[[0,0],[1,0]],[[0,0],[1,0]],[[0,0],[1,0]]])
b = np.nonzero(a)
print(np.array(b).ndim)
print(b)

结果:

2
(array([0, 1, 2], dtype=int64), array([1, 1, 1], dtype=int64), array([0, 0, 0], dtype=int64))

说明:由于a是3维数组,因此,索引值数组有3个一维数组。

注:数组索引值从0开始。

以上这篇关于numpy中np.nonzero()函数用法的详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用PDB简单调试Python程序简明指南
Apr 25 Python
python中threading超线程用法实例分析
May 16 Python
python批量提取word内信息
Aug 09 Python
Python读写Json涉及到中文的处理方法
Sep 12 Python
Python3.X 线程中信号量的使用方法示例
Jul 24 Python
Python迭代器和生成器定义与用法示例
Feb 10 Python
tensorflow学习笔记之简单的神经网络训练和测试
Apr 15 Python
pandas Dataframe行列读取的实例
Jun 08 Python
Python小白必备的8个最常用的内置函数(推荐)
Apr 03 Python
对python 调用类属性的方法详解
Jul 02 Python
Django 创建/删除用户的示例代码
Jul 24 Python
Python获取、格式化当前时间日期的方法
Feb 10 Python
Python脚本实现自动将数据库备份到 Dropbox
Feb 06 #Python
一张图带我们入门Python基础教程
Feb 05 #Python
详解python脚本自动生成需要文件实例代码
Feb 04 #Python
Python中文件I/O高效操作处理的技巧分享
Feb 04 #Python
Django应用程序中如何发送电子邮件详解
Feb 04 #Python
Python算法应用实战之栈详解
Feb 04 #Python
Python算法应用实战之队列详解
Feb 04 #Python
You might like
PHP 递归效率分析
2009/11/24 PHP
克隆一个新项目的快捷方式
2013/04/10 PHP
php上传apk后自动提取apk包信息的使用(示例下载)
2013/04/26 PHP
利用PHP实现图片等比例放大和缩小的方法详解
2013/06/06 PHP
web server使用php生成web页面的三种方法总结
2013/10/28 PHP
你的编程语言可以这样做吗?
2006/09/07 Javascript
HTML 自动伸缩的表格Table js实现
2009/04/01 Javascript
javascript针对DOM的应用分析(四)
2012/04/15 Javascript
网站内容禁止复制和粘贴、另存为的js代码
2014/02/26 Javascript
jQuery控制TR显示隐藏的三种常用方法
2014/08/21 Javascript
jquery+ajax验证不通过也提交表单问题处理
2014/12/12 Javascript
javascript实现网页子页面遍历回调的方法(涉及 window.frames、递归函数、函数上下文)
2015/07/27 Javascript
Javascript中的数据类型之旅
2015/10/18 Javascript
jquery动态增加删减表格行特效
2015/11/20 Javascript
javascript for-in有序遍历json数据并探讨各个浏览器差异
2015/11/30 Javascript
js实现页面刷新滚动条位置不变
2016/11/27 Javascript
实例详解display:none与visible:hidden的区别
2017/03/30 Javascript
详解vue-cli + webpack 多页面实例应用
2017/04/25 Javascript
node基于puppeteer模拟登录抓取页面的实现
2018/05/09 Javascript
通过说明与示例了解js五种设计模式
2019/06/17 Javascript
日常整理python执行系统命令的常见方法(全)
2015/10/22 Python
Python实现曲线点抽稀算法的示例
2017/10/12 Python
Python实现的计算器功能示例
2018/04/26 Python
PyCharm+PyQt5+QtDesigner配置详解
2020/08/12 Python
python实现图片转换成素描和漫画格式
2020/08/19 Python
CSS3 毛玻璃效果
2019/08/14 HTML / CSS
纯CSS3+DIV实现小三角形边框效果的示例代码
2020/08/03 HTML / CSS
医学毕业生自荐信
2013/10/11 职场文书
会计专业毕业生推荐信
2013/11/05 职场文书
竞选部长演讲稿
2014/04/26 职场文书
运动会的口号
2014/06/09 职场文书
工商管理自荐书
2014/07/06 职场文书
专业技术人员年度考核评语
2014/12/31 职场文书
重阳节慰问信
2015/02/15 职场文书
总经理岗位职责范本
2015/04/01 职场文书
消防验收申请报告
2015/05/15 职场文书