理解np.nonzero()函数
举三个例子,就能清楚的看到 np.nonzero() 这个函数返回值的意义
一、
#例1 一维数组
import numpy as np a = [0,1,2,0,3,0]
b = np.nonzero(a)
print(b)
输出: (array([1, 2, 4], dtype=int64),)
nonzero()用于得到数组中非零元素的位置(数组索引),如上例中数组a中索引1,2,4中的元素不为0,即返回值
二、
#例2 二维数组
import numpy as np
a =[[1,2,3],
[0,2,0],
[0,2,2]] b = nonzero(a)
print(b)
输出:(array([0, 0, 0, 1, 2, 2], dtype=int64), array([0, 1, 2, 1, 1, 2], dtype=int64))
先看一下输出的内容(格式),它输出了二个array数组,刚好对应了二维数组的二,每一个数组对应了数组a的一个维度,也是说在每个数组中挑出对应的数字组成一个坐标,就可以找到数组a中非0元素。比如说从 输出的第一个数组 [0, 0, 0, 1, 2, 2]中选第一个数字0和第二个数组 [0, 1, 2, 1, 1, 2] 也选出对应的数字0,就组成了一个位置坐标[0,0](也即 [0][0] ),意味着数组a中第0行,第0列的位置是非0元素,其余类推。两个数组分别选出一个数字就对应了6个位置,即 [0][0] ,[0][1],[0][2],[1][1],[2][1],[2][2],这些就是数组a中的非0位置对应的索引信息,可以通过如a[0][0], a[0][1]等取出。
哎,现在是不是发现了,a中元素非0元素的个数和输出的每一个数组的长度是一样的。如果现在懂了一点,猜测一下nonzero()三维和高维数组的输出结果。
三、
# 例三 三维数组
import numpy as np
a =[[[1,2,3],
[1,0,1]],
[[0,2,0],
[1,1,0]],
[[0,2,2],
[0,9,8]]] b = nonzero(a)
print(b)
输出: (array([0, 0, 0, 0, 0, 1, 1, 1, 2, 2, 2, 2], dtype=int64), array([0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1], dtype=int64), array([0, 1, 2, 0, 2, 1, 0, 1, 1, 2, 1, 2], dtype=int64))
在输出的三个array数组中分别选出对应的位置组成a中非0位置的索引,即 [ 0 ][ 0 ][ 0 ],[ 0 ][ 0 ][ 1 ],[ 0 ][ 0 ][ 2 ],[ 0 ][ 1 ][ 0 ]等。
理解np.nonzero()函数的更多相关文章
- np.nonzero()函数用法
返回数组中不为0的元素的下标. 数组中元素可为布尔.整型和浮点型,返回值为元祖 一.一维数组 1.数组元素为布尔类型 a=np.array([True,False,True,False]) b=np. ...
- Python中Numpy.nonzero()函数
Numpy.nonzero()返回的是数组中,非零元素的位置.如果是二维数组就是描述非零元素在几行几列,三维数组则是描述非零元素在第几组中的第几行第几列. 举例如下: 二维数组: a = np.arr ...
- 如何理解javaSript中函数的参数是按值传递
本文是我基于红宝书<Javascript高级程序设计>中的第四章,4.1.3传递参数小节P70,进一步理解javaSript中函数的参数,当传递的参数是对象时的传递方式. (结合资料的个人 ...
- 【转】Python numpy库的nonzero函数用法
当使用布尔数组直接作为下标对象或者元组下标对象中有布尔数组时,都相当于用nonzero()将布尔数组转换成一组整数数组,然后使用整数数组进行下标运算. nonzeros(a) 返回数组a中值不为零的元 ...
- 理解php Hash函数,增强密码安全
1.声明 密码学是一个复杂的话题,我也不是这方面的专家.许多高校和研究机构在这方面都有长期的研究.在这篇文章里,我希望尽量使用简单易懂的方式向你展示一种安全存储Web程序密码的方法. 2.“Hash” ...
- 理解javascript 回调函数
##回调函数定义 百度百科:回调函数 回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数.回调函数不 ...
- 深入理解立即执行函数(function(){})();
( function(){-} )()和( function (){-} () )是两种javascript立即执行函数的常见写法,要理解立即执行函数,需要先理解一些函数的基本概念. 1,函数声明,函 ...
- 深入浅出理解c++虚函数
深入浅出理解c++虚函数 记得几个月前看过C++虚函数的问题,当时其实就看懂了,最近笔试中遇到了虚函数竟然不太确定,所以还是理解的不深刻,所以想通过这篇文章来巩固下. 装逼一刻: 最近,本人思想发 ...
- np.argsort函数
np.argsort函数 觉得有用的话,欢迎一起讨论相互学习~Follow Me numpy.argsort(a, axis=-1, kind='quicksort', order=None) 功能: ...
随机推荐
- 《Java语言程序设计》编程练习6.31(财务应用程序:信用卡号的合法性)
6.31(财务应用程序:信用卡号的合法性)信用卡号遵循下面的模式.一个信用卡号必须是13到16位的整数.它的开头必须是: 4,指Visa卡 5,指Master卡 37,指American Expres ...
- Linux入门(历史与现状)
Linux 入门之 历史与现状 Linux是一个计算机的操作系统,与windows类似,是一款系统软件.操作系统首先是一个计算机程序,使用计算机语言开发,比如C语言.VC语言.是计算机硬件和应用软 ...
- A-04 坐标轴下降法
目录 坐标轴下降法 一.坐标轴下降法流程 二.坐标轴下降法和梯度下降法的异同 更新.更全的<机器学习>的更新网站,更有python.go.数据结构与算法.爬虫.人工智能教学等着你:http ...
- Spring Cloud Alibaba学习笔记(3) - Ribbon
1.手写一个客户端负载均衡器 在了解什么是Ribbon之前,首先通过代码的方式手写一个负载均衡器 RestTemplate restTemplate = new RestTemplate(); // ...
- 聊聊db和缓存一致性的5种实现方式
数据存储在数据库中,为了加快业务访问的速度,我们将数据库中的一些数据放在缓存中,那么问题来了,如何确保db和缓存中数据的一致性呢?我们列出了5种方法,大家都了解一下,然后根据业务自己选择. 方案1 获 ...
- mssql数据库提权
1.关于 “xp_cmdshell” “存储过程”:其实质就是一个“集合”,那么是什么样的结合呢,就是存储在SqlServer中预先定义好的“SQL语句集合”,说的更直白一些就是使用T-SQL语言编写 ...
- Python 之Re模块(正则表达式)
一.简介 正则表达式本身是一种小型的.高度专业化的编程语言,而在python中,通过内嵌集成re模块,程序媛们可以直接调用来实现正则匹配. 二.正则表达式中常用的字符含义 1.普通字符和11个元字符: ...
- PHP array_filter
1.函数的作用:过滤数组中的值: 2.函数的参数: @params array $array @params callback $callback @params int $flag [ARRAY ...
- nginx::升级到最新nginx
ubuntu16. 升级nginx到最新版本 wget http://nginx.org/keys/nginx_signing.key sudo apt-key add nginx_signing.k ...
- C#窗体练习:带历史信息的菜单
在开发图纸管理软件时,要求在菜单上记录用户最近打开的档案或图纸,以方便下次使用.单击“文件”菜单下的“打开文件”子菜单,打开需要查阅的图纸.下次运行该软件时,上次打开的文件名记录到“文件”菜单的历史菜 ...