理解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第4天:String static Arrays类,Math类
1 字符串的概述和特点 字符串一旦创建,是不可变的. 有双引号的就是字符串 *** 2 字符串的三种构造方法 2-1 第一种: 格式:String str = new String();| :-| 2 ...
- Linux下格式化恢复USB启动优盘
问题描述:优盘制作成启动盘安装操作系统,但是后边使用时发现无法格式化,提示 This partition cannot be modified because it contains a partit ...
- Jenkins 管道 工作流 自动化部署
jenkins Jenkins是一个用Java编写的开源的持续集成工具.在与Oracle发生争执后,项目从Hudson项目复刻. Jenkins提供了软件开发的持续集成服务.它运行在Servlet容器 ...
- 「面试高频」二叉搜索树&双指针&贪心 算法题指北
本文将覆盖 「字符串处理」 + 「动态规划」 方面的面试算法题,文中我将给出: 面试中的题目 解题的思路 特定问题的技巧和注意事项 考察的知识点及其概念 详细的代码和解析 开始之前,我们先看下会有哪些 ...
- nginx搭建web服务器
现在有如此众多web服务器,我觉得nginx服务器一个很重要的优势就是它能在支持高并发请求的同时保持高效的服务,接下来我将搭建一个简单的web服务器. 1.编写自己的网页 在nginx目录下新建文件夹 ...
- SQL 存储过程示例讲解
create proc score_result ) --参数 as declare --定义变量@courseNo int, @testTime1 datetime, @avg int begin ...
- 讲真,MySQL索引优化看这篇文章就够了
本文主要讨论MySQL索引的部分知识.将会从MySQL索引基础.索引优化实战和数据库索引背后的数据结构三部分相关内容,下面一一展开. 一.MySQL——索引基础 首先,我们将从索引基础开始介绍一下什么 ...
- windows系统安全日志取证工具
0x01 关于日志 Windows安全事件日志中详细记录了是谁在什么时候通过什么手段登录到系统或者注销了登录,通过分析该日志可以详细了解服务器的安全情况以及必要时的取证工作. 0x02 查看日志 传统 ...
- [Luogu2359] 三素数数
题目背景 蛟川书院的一道练习题QAQ 题目描述 如果一个数的所有连续三位数字都是大于100的素数,则该数称为三素数数.比如113797是一个6位的三素数数. 输入输出格式 输入格式: 一个整数n(3 ...
- Centos7安装moloch步骤
Centos7安装moloch步骤 Moloch 是一个由AOL开源的,能够大规模的捕获IPv4数据包(PCAP).索引和数据库系统,由以下三个部分组成: capture :绑定interface ...