关于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正则表达式教程之一:基础篇
Mar 02 Python
python3操作mysql数据库的方法
Jun 23 Python
python判断一个集合是否为另一个集合的子集方法
May 04 Python
python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix实现
Jun 11 Python
python通过配置文件共享全局变量的实例
Jan 11 Python
基于python-opencv3的图像显示和保存操作
Jun 27 Python
Python绘制热力图示例
Sep 27 Python
Python中xml和dict格式转换的示例代码
Nov 07 Python
python Jupyter运行时间实例过程解析
Dec 13 Python
django配置app中的静态文件步骤
Mar 27 Python
Python Matplotlib简易教程(小白教程)
Jul 28 Python
Python基础教程,Python入门教程(超详细)
Jun 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
php中instanceof 与 is_a()区别分析
2015/03/03 PHP
php中钩子(hook)的原理与简单应用demo示例
2019/09/03 PHP
php 自定义函数实现将数据 以excel 表格形式导出示例
2019/11/13 PHP
PHP中mysqli_get_server_version()的实例用法
2020/02/03 PHP
JavaScript Distilled 基础知识与函数
2010/04/07 Javascript
关闭浏览器输入框自动补齐 兼容IE,FF,Chrome等主流浏览器
2014/02/11 Javascript
Javascript中设置默认参数值示例
2014/09/11 Javascript
无限树Jquery插件zTree的常用功能特性总结
2014/09/11 Javascript
prototype.js常用函数详解
2016/06/18 Javascript
详解nodejs 文本操作模块-fs模块(五)
2016/12/23 NodeJs
JavaScript自定义浏览器滚动条兼容IE、 火狐和chrome
2017/01/05 Javascript
Bootstrap导航中表单简单实现代码
2017/03/06 Javascript
JS正则表达式验证中文字符
2017/05/08 Javascript
vue实现点击隐藏与显示实例分享
2019/02/13 Javascript
微信小程序全局变量的设置、使用、修改过程解析
2019/09/24 Javascript
vue 动态设置img的src地址无效,npm run build 后找不到文件的解决
2020/07/26 Javascript
JavaScript array常用方法代码实例详解
2020/09/02 Javascript
详解javascript脚本何时会被执行
2021/02/05 Javascript
一篇文章入门Python生态系统(Python新手入门指导)
2015/12/11 Python
python实时监控cpu小工具
2018/06/21 Python
PyCharm在新窗口打开项目的方法
2019/01/17 Python
详解python中TCP协议中的粘包问题
2019/03/22 Python
详解python配置虚拟环境
2019/04/08 Python
PyTorch中permute的用法详解
2019/12/30 Python
检测浏览器是否支持html5视频的代码
2013/03/28 HTML / CSS
小学生获奖感言范文
2014/02/02 职场文书
大学生求职工作的自我评价
2014/02/13 职场文书
青年文明号创建承诺
2014/03/31 职场文书
小学生期末评语大全
2014/04/21 职场文书
工程承诺书怎么写
2014/05/24 职场文书
人事任命书范文
2014/06/04 职场文书
职业生涯规划书怎么写?
2014/09/14 职场文书
党旗在我心中演讲稿
2014/09/15 职场文书
伊索寓言读书笔记
2015/06/30 职场文书
python中Matplotlib绘制直线的实例代码
2021/07/04 Python
微前端qiankun改造日渐庞大的项目教程
2022/06/21 Javascript