关于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的Zato发送AMQP消息的教程
Apr 16 Python
Python3中使用PyMongo的方法详解
Jul 28 Python
使用Python实现在Windows下安装Django
Oct 17 Python
python爬取酷狗音乐排行榜
Feb 20 Python
python批量修改文件夹及其子文件夹下的文件内容
Mar 15 Python
python Gunicorn服务器使用方法详解
Jul 22 Python
Django urls.py重构及参数传递详解
Jul 23 Python
Python3实现二叉树的最大深度
Sep 30 Python
Python3基于print打印带颜色字符串
Jul 06 Python
python+playwright微软自动化工具的使用
Feb 02 Python
Python绘制词云图之可视化神器pyecharts的方法
Feb 23 Python
Matlab使用Plot函数实现数据动态显示方法总结
Feb 25 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
zend framework重定向方法小结
2016/05/28 PHP
一个高效的JavaScript压缩工具下载集合
2007/03/06 Javascript
jQuery插件-jRating评分插件源码分析及使用方法
2012/12/28 Javascript
Jquery的hover方法让鼠标经过li时背景变色
2013/09/06 Javascript
JS实现京东首页之页面顶部、Logo和搜索框功能
2017/01/12 Javascript
微信小程序 template模板详解及实例
2017/02/21 Javascript
利用forever和pm2部署node.js项目过程
2017/05/10 Javascript
Vue函数式组件的应用实例详解
2019/08/30 Javascript
jQuery 选择器用法基础入门示例
2020/01/04 jQuery
VUE使用axios调用后台API接口的方法
2020/08/03 Javascript
vue iview 隐藏Table组件里的某一列操作
2020/11/13 Javascript
[00:48]DOTA2国际邀请赛公开赛报名开始 扫码开启逐梦之旅
2018/06/06 DOTA
python中的sort方法使用详解
2014/07/25 Python
为Python程序添加图形化界面的教程
2015/04/29 Python
Python环境下搭建属于自己的pip源的教程
2016/05/05 Python
Python自动化运维和部署项目工具Fabric使用实例
2016/09/18 Python
mvc框架打造笔记之wsgi协议的优缺点以及接口实现
2018/08/01 Python
解决python中的幂函数、指数函数问题
2019/11/25 Python
python 字符串的驻留机制及优缺点
2020/06/19 Python
Python在字符串中处理html和xml的方法
2020/07/31 Python
EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的
2015/07/24 面试题
给老婆的婚前保证书
2014/02/01 职场文书
《绿色蝈蝈》教学反思
2014/03/02 职场文书
安全环保演讲稿
2014/08/28 职场文书
2014国庆65周年领导讲话稿(3篇)
2014/09/21 职场文书
2014年行政后勤工作总结
2014/12/06 职场文书
2014年创先争优工作总结
2014/12/11 职场文书
小班上学期幼儿评语
2014/12/30 职场文书
专家推荐信怎么写
2015/03/25 职场文书
2015国庆节宣传语
2015/07/14 职场文书
2015年行政管理人员工作总结
2015/10/15 职场文书
资深HR教你写好简历中的自我评价
2019/05/07 职场文书
餐厅如何利用“营销策略”扭转亏本局面
2019/10/15 职场文书
jdbc使用PreparedStatement批量插入数据的方法
2021/04/27 MySQL
sql中mod()函数取余数的用法
2021/05/29 SQL Server
据Python爬虫不靠谱预测可知今年双十一销售额将超过6000亿元
2021/11/11 Python