关于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 相关文章推荐
用python制作游戏外挂
Jan 04 Python
python Opencv将图片转为字符画
Feb 19 Python
浅析python打包工具distutils、setuptools
Apr 20 Python
matplotlib实现热成像图colorbar和极坐标图的方法
Dec 13 Python
Python将string转换到float的实例方法
Jul 29 Python
Python 字节流,字符串,十六进制相互转换实例(binascii,bytes)
May 11 Python
python 字符串的驻留机制及优缺点
Jun 19 Python
详解用Python调用百度地图正/逆地理编码API
Jul 02 Python
简单了解python关键字global nonlocal区别
Sep 21 Python
pycharm 实现复制一行的快捷键
Jan 15 Python
如何理解python接口自动化之logging日志模块
Jun 15 Python
Python 使用 Frame tkraise() 方法在 Tkinter 应用程序中的Frame之间切换
Apr 24 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
ThinkPHP 404页面的设置方法
2015/01/14 PHP
PHP使用ffmpeg给视频增加字幕显示的方法
2015/03/12 PHP
php单例模式的简单实现方法
2016/06/10 PHP
laravel学习教程之存取器
2016/07/30 PHP
基于laravel缓冲cache的用法详解
2019/10/23 PHP
文字幻灯片
2006/06/26 Javascript
js隐式全局变量造成的bug示例代码
2014/04/22 Javascript
jquery处理json数据实例分析
2014/06/03 Javascript
JS在IE下缺少标识符的错误
2014/07/23 Javascript
使用jquery实现仿百度自动补全特效
2015/07/23 Javascript
Javascript操作表单实例讲解(下)
2016/06/20 Javascript
vue多级多选菜单组件开发
2020/09/08 Javascript
JS简单验证上传文件类型的方法
2017/04/17 Javascript
Vue单页面应用保证F5强刷不清空数据的解决方案
2018/01/31 Javascript
Vue2 轮播图slide组件实例代码
2018/05/31 Javascript
vue中各种通信传值方式总结
2019/02/14 Javascript
layui use 定义js外部引用函数的方法
2019/09/26 Javascript
使用Vue+Django+Ant Design做一个留言评论模块的示例代码
2020/06/01 Javascript
[01:02:07]Liquid vs Newbee 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
复制粘贴功能的Python程序
2008/04/04 Python
把MySQL表结构映射为Python中的对象的教程
2015/04/07 Python
python实现一次创建多级目录的方法
2015/05/15 Python
使用python调用zxing库生成二维码图片详解
2017/01/10 Python
python爬虫 批量下载zabbix文档代码实例
2019/08/21 Python
使用python+whoosh实现全文检索
2019/12/09 Python
python如何利用Mitmproxy抓包
2020/10/10 Python
CSS中越界问题的经典解决方案【推荐】
2016/04/19 HTML / CSS
HTML5移动端开发中的Viewport标签及相关CSS用法解析
2016/04/15 HTML / CSS
优衣库台湾官网:UNIQLO台湾
2019/02/01 全球购物
财务助理岗位职责
2013/11/10 职场文书
高中生毕业自我鉴定范文
2013/12/22 职场文书
十佳班主任事迹材料
2014/01/18 职场文书
读书伴我成长演讲稿
2014/05/07 职场文书
优秀教师自我评价范文
2014/09/27 职场文书
2015年社区服务活动总结
2015/03/25 职场文书
幼儿教师三分钟演讲稿
2019/06/21 职场文书