关于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制作简单的朴素基数估计器的教程
Apr 01 Python
python在windows下创建隐藏窗口子进程的方法
Jun 04 Python
Python双精度浮点数运算并分行显示操作示例
Jul 21 Python
对PyTorch torch.stack的实例讲解
Jul 30 Python
对django 模型 unique together的示例讲解
Aug 06 Python
Django1.11配合uni-app发起微信支付的实现
Oct 12 Python
解决Python中回文数和质数的问题
Nov 24 Python
python基于event实现线程间通信控制
Jan 13 Python
Python 实现平台类游戏添加跳跃功能
Mar 27 Python
Python 爬虫的原理
Jul 30 Python
如何使用Python对NetCDF数据做空间相关分析
Apr 21 Python
这样写python注释让代码更加的优雅
Jun 02 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从右向左/从左向右截取字符串的实现方法
2011/11/28 PHP
B/S开发中常用javaScript技术与代码
2007/03/09 Javascript
推荐dojo学习笔记
2007/03/24 Javascript
Array.prototype 的泛型应用分析
2010/04/30 Javascript
文字溢出实现溢出的部分再放入一个新生成的div中具体代码
2013/05/17 Javascript
GridView中获取被点击行中的DropDownList和TextBox中的值
2013/07/18 Javascript
JavaScript实现将xml转换成html table表格的方法
2015/04/17 Javascript
JS+CSS实现简单的二级下拉导航菜单效果
2015/09/21 Javascript
JavaScript模拟push
2016/03/06 Javascript
JS 拼凑字符串的简单实例
2016/09/02 Javascript
vue项目中v-model父子组件通信的实现详解
2017/12/10 Javascript
Vue cli+mui 区域滚动的实例代码
2018/01/25 Javascript
基于 Immutable.js 实现撤销重做功能的实例代码
2018/03/01 Javascript
vue 设置proxyTable参数进行代理跨域
2018/04/09 Javascript
vue 自定义 select内置组件
2018/04/10 Javascript
es6 symbol的实现方法示例
2019/04/02 Javascript
js获取浏览器地址(获取第1个斜杠后的内容)
2019/09/03 Javascript
layui 图片上传+表单提交+ Spring MVC的实例
2019/09/21 Javascript
解决DataFrame排序sort的问题
2018/06/07 Python
python,Django实现的淘宝客登录功能示例
2019/06/12 Python
使用pandas读取文件的实现
2019/07/31 Python
Django实现网页分页功能
2019/10/31 Python
python scrapy重复执行实现代码详解
2019/12/28 Python
Python3 读取Word文件方式
2020/02/13 Python
Python几种常见算法汇总
2020/06/02 Python
python中用ggplot绘制画图实例讲解
2021/01/26 Python
Draper James官网:知名演员瑞茜·威瑟斯彭所创品牌
2017/10/25 全球购物
美国正宗奢华复古手袋、珠宝及配饰网站:What Goes Around Comes Around
2018/07/21 全球购物
Net Remoting把服务器端激活两种模式
2014/01/22 面试题
小学三年级数学教学反思
2014/01/31 职场文书
2014年幼儿园安全工作总结
2014/11/10 职场文书
2014年村官工作总结
2014/11/24 职场文书
幼师小班个人总结
2015/02/12 职场文书
行政前台岗位职责
2015/04/16 职场文书
pytorch中[..., 0]的用法说明
2021/05/20 Python
Spring Boot项目传参校验的最佳实践指南
2022/04/05 Java/Android