关于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多进程编程下线程之间变量的共享问题
May 05 Python
简单谈谈Python中的几种常见的数据类型
Feb 10 Python
Python 中Pickle库的使用详解
Feb 24 Python
基于python log取对数详解
Jun 08 Python
django 发送邮件和缓存的实现代码
Jul 18 Python
解决Mac下首次安装pycharm无project interpreter的问题
Oct 29 Python
用python脚本24小时刷浏览器的访问量方法
Dec 07 Python
Python实现计算文件MD5和SHA1的方法示例
Jun 11 Python
在Qt5和PyQt5中设置支持高分辨率屏幕自适应的方法
Jun 18 Python
Python视频编辑库MoviePy的使用
Apr 01 Python
Python批量删除mysql中千万级大量数据的脚本分享
Dec 03 Python
用python 绘制茎叶图和复合饼图
Feb 26 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获取文件名后缀
2013/06/09 PHP
WordPress过滤垃圾评论的几种主要方法小结
2016/07/11 PHP
laravel5.1框架基础之Blade模板继承简单使用方法分析
2019/09/05 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
2019/11/19 PHP
js转义字符介绍
2013/11/05 Javascript
JavaScript加入收藏夹功能(兼容IE、firefox、chrome)
2014/05/05 Javascript
js阻止事件追加的具体实现
2014/10/15 Javascript
JavaScript设置获取和设置属性的方法
2015/03/04 Javascript
javascript实现类似百度分享功能的方法
2015/07/27 Javascript
运用js教你轻松制作html音乐播放器
2020/04/17 Javascript
js 点击a标签 获取a的自定义属性方法
2016/11/21 Javascript
利用原生JS与jQuery实现数字线性变化的动画
2017/02/24 Javascript
jQuery插件FusionCharts实现的2D面积图效果示例【附demo源码下载】
2017/03/06 Javascript
前端构建工具之gulp的语法教程
2017/06/12 Javascript
使用socket.io制做简易WEB聊天室
2018/01/02 Javascript
node链接mongodb数据库的方法详解【阿里云服务器环境ubuntu】
2019/03/07 Javascript
JavaScrip数组去重操作实例小结
2019/06/20 Javascript
JS数组的常用10种方法详解
2020/05/08 Javascript
python实现simhash算法实例
2014/04/25 Python
Python的Tornado框架实现异步非阻塞访问数据库的示例
2016/06/30 Python
python re.sub()替换正则的匹配内容方法
2019/07/22 Python
Python matplotlib生成图片背景透明的示例代码
2019/08/30 Python
如何在 Django 模板中输出 "{{"
2020/01/24 Python
澳大利亚相机之家:Camera House
2017/11/30 全球购物
北美个性化礼品商店:Things Remembered
2018/06/12 全球购物
英国剑桥包中文官网:The Cambridge Satchel Company中国
2018/11/06 全球购物
维氏瑞士军刀英国网站:Victorinox英国
2019/07/04 全球购物
Ego Shoes官网:英国时髦鞋类品牌
2020/10/19 全球购物
德国富尔达运动鞋店:43einhalb
2020/12/25 全球购物
一名毕业生的自我鉴定
2013/12/04 职场文书
暑期研修感言
2014/02/17 职场文书
小学作文评语大全
2014/04/21 职场文书
西部计划志愿者工作总结
2015/08/11 职场文书
中考百日冲刺决心书
2015/09/22 职场文书
基于Java的MathML转图片的方法(示例代码)
2021/06/23 Java/Android
SpringCloud中分析讲解Feign组件添加请求头有哪些坑梳理
2022/06/21 Java/Android