关于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中请使用isinstance()判断变量类型
Aug 25 Python
Python实现抓取网页并且解析的实例
Sep 20 Python
python获取一组汉字拼音首字母的方法
Jul 01 Python
浅谈Python 中整型对象的存储问题
May 16 Python
python+Splinter实现12306抢票功能
Sep 25 Python
DES加密解密算法之python实现版(图文并茂)
Dec 06 Python
Python 如何反方向迭代一个序列
Jul 28 Python
利用Python中的Xpath实现一个在线汇率转换器
Sep 09 Python
Python3.9新特性详解
Oct 10 Python
Python字典dict常用方法函数实例
Nov 09 Python
Python 爬虫批量爬取网页图片保存到本地的实现代码
Dec 24 Python
详解用selenium来下载小姐姐图片并保存
Jan 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动态创建Web站点的方法
2011/08/14 PHP
php防注入,表单提交值转义的实现详解
2013/06/10 PHP
PHP 使用pcntl和libevent 实现Timer功能
2013/10/27 PHP
PHP跨平台获取服务器IP地址自定义函数分享
2014/12/29 PHP
php返回相对时间(如:20分钟前,3天前)的方法
2015/04/14 PHP
JavaScript 拾漏补遗
2009/12/27 Javascript
使用jQuery内容过滤选择器选择元素实例讲解
2013/04/18 Javascript
iframe的onreadystatechange事件在firefox下的使用
2014/04/16 Javascript
JavaScript性能优化总结之加载与执行
2016/08/11 Javascript
AngularJs expression详解及简单示例
2016/09/01 Javascript
socket.io学习教程之基础介绍(一)
2017/04/29 Javascript
vue使用axios跨域请求数据问题详解
2017/10/18 Javascript
VUE2 前端实现 静态二级省市联动选择select的示例
2018/02/09 Javascript
Vue 中使用vue2-highcharts实现曲线数据展示的方法
2018/03/05 Javascript
[03:27]最受玩家喜爱奖提名:PZH_Element 致玩家寄语
2016/12/20 DOTA
python3简单实现微信爬虫
2015/04/09 Python
安装dbus-python的简要教程
2015/05/05 Python
Python对列表排序的方法实例分析
2015/05/16 Python
Python搭建HTTP服务器和FTP服务器
2017/03/09 Python
详谈python在windows中的文件路径问题
2018/04/28 Python
安装好Pycharm后如何配置Python解释器简易教程
2019/06/28 Python
Django后台admin的使用详解
2019/07/08 Python
Python如何使用正则表达式爬取京东商品信息
2020/06/01 Python
详解Python中@staticmethod和@classmethod区别及使用示例代码
2020/12/14 Python
python matplotlib工具栏源码探析三之添加、删除自定义工具项的案例详解
2021/02/25 Python
CSS3实现的文本3D效果附图
2014/09/03 HTML / CSS
Expedia马来西亚旅游网站:廉价酒店,度假村和航班预订
2016/07/26 全球购物
全球速卖通法国在线交易平台:AliExpress法国
2017/07/07 全球购物
流行文化收藏品:Sideshow(DC漫画,星球大战,漫威)
2019/03/17 全球购物
毕业生个人投资创业计划书
2014/01/04 职场文书
2014年数学教研组工作总结
2014/12/06 职场文书
自主招生自荐信格式范文
2015/03/25 职场文书
初中毕业感言300字
2015/07/31 职场文书
队名及霸气口号大全
2015/12/25 职场文书
新店开业策划方案怎么书写?
2019/07/05 职场文书
2019最新版劳务派遣管理制度
2019/08/16 职场文书