Numpy.nonzero()返回的是数组中,非零元素的位置。如果是二维数组就是描述非零元素在几行几列,三维数组则是描述非零元素在第几组中的第几行第几列。

举例如下:

二维数组:

a = np.array([[, , ], [, , ], [, , ]])
b = np.nonzero(a)
print(b)

结果为:(array([0, 0, 1, 2], dtype=int64), array([0, 2, 1, 2], dtype=int64))

第一个array描述行,第二个array描述列,我们把结果转变下以便理解:

array[0, 0, 1, 2]

array[0, 2, 1, 2]

我们看到第一个非零元素1,在0行0列,对应为加粗数字:

array[0, 0, 1, 2]

array[0, 2, 1, 2]

第二个非零元是3,在0行2列,对应:

array[0, 0, 1, 2]

array[0, 2, 1, 2]

第三个非零元素是2,在1行1列,对应:

array[0, 0, 1, 2]

array[0, 2, 1, 2]

第四个非零元素是9,在2行2列,对应:

array[0, 0, 1, 2]

array[0, 2, 1, 2]

再举一个三维数组的列子:

a = np.array([[[,],[,]],[[,],[,]],[[,],[,]]])
b = np.nonzero(a)
print(b)

结果为:(array([0, 0, 1, 1, 2], dtype=int64), array([0, 1, 0, 1, 1], dtype=int64), array([1, 0, 1, 0, 0], dtype=int64))

同样变形下:

array[0, 0, 1, 1, 2]     描述在第几组

array[0, 1, 0, 1, 1]     描述行

array[1, 0, 1, 0, 0]     描述列

第一个非零元是1,在0组0行1列,对应

array[0, 0, 1, 1, 2]

array[0, 1, 0, 1, 1]

array[1, 0, 1, 0, 0]

第二个非零元是2,在0组1行0列,对应

array[0, 0, 1, 1, 2]

array[0, 1, 0, 1, 1]

array[1, 0, 1, 0, 0]

第三个非零元是3,在1组0行1列,对应

array[0, 0, 1, 1, 2]

array[0, 1, 0, 1, 1]

array[1, 0, 1, 0, 0]

第四个非零元是4,在1组1行0列,对应

array[0, 0, 1, 1, 2]

array[0, 1, 0, 1, 1]

array[1, 0, 1, 0, 0]

第五个非零元素是5,在2组1行0列,对应

array[0, 0, 1, 1, 2]

array[0, 1, 0, 1, 1]

array[1, 0, 1, 0, 0]

更高维数计算类似,读者可以自己推导

Python中Numpy.nonzero()函数的更多相关文章

  1. Python中numpy.apply_along_axis()函数的用法

    numpy.apply_along_axis(func, axis, arr, *args, **kwargs): 必选参数:func,axis,arr.其中func是我们自定义的一个函数,函数fun ...

  2. python 中numpy dot函数的使用方法

    这个函数在的数字信号处理中用处还是比较广泛的,函数的具体定义如下所示: numpy.dot(a, b, out=None) 该函数的作用是获取两个元素a,b的乘积,表示的含义如下所示: dot(a, ...

  3. python中numpy.sum()函数

    讲解清晰,转载自:https://blog.csdn.net/rifengxxc/article/details/75008427 众所周知,sum不传参的时候,是所有元素的总和.这里就不说了. 1 ...

  4. python中numpy对函数进行矢量化转换

    在对numpy的数组进行操作时,我们应该尽量避免循环操作,尽可能利用矢量化函数来避免循环. 但是,直接将自定义函数应用在numpy数组之上会报错,我们需要将函数进行矢量化转换. def Theta(x ...

  5. python中numpy.concatenate()函数的使用

    numpy库数组拼接np.concatenate 原文:https://blog.csdn.net/zyl1042635242/article/details/43162031 思路:numpy提供了 ...

  6. Python中Numpy及Matplotlib使用

    Python中Numpy及Matplotlib使用 1. Jupyter Notebooks 作为小白,我现在使用的python编辑器是Jupyter Notebook,非常的好用,推荐!!! 你可以 ...

  7. python --- Python中的callable 函数

    python --- Python中的callable 函数 转自: http://archive.cnblogs.com/a/1798319/ Python中的callable 函数 callabl ...

  8. python中使用zip函数出现<zip object at 0x02A9E418>

    在Python中使用zip函数,出现<zip object at 0x02A9E418>错误的原因是,你是用的是python2点多的版本,python3.0对python做了改动 zip方 ...

  9. [转载]python中multiprocessing.pool函数介绍

    原文地址:http://blog.sina.com.cn/s/blog_5fa432b40101kwpi.html 作者:龙峰 摘自:http://hi.baidu.com/xjtukanif/blo ...

随机推荐

  1. audio mixer

    https://blog.csdn.net/jeffasd/article/details/77155187 https://blog.csdn.net/jeffasd/article/details ...

  2. AAC Joint coding

    1. M/S stereo M/S stereo 作用于channel pair. channel pair对于listener来说通常具有对称性,即第一个channel和第二个channel相似性较 ...

  3. Whctf - OLDDRIVER - Writeup

    Whctf - OLDDRIVER - Writeup 转载请标明出处http://www.cnblogs.com/WangAoBo/p/7541536.html 题目: 分析: 给了10组RSA的加 ...

  4. [python]Python 中 if not 用法

    在python 判断语句中 None, False, 空字符串"", 0, 空列表[], 空字典{}, 空元组()都相当于 False not None == not False ...

  5. Java - 字符串操作

    字符串常用操作如下 public static void main(String[] args) { /** * 创建字符串 */ String s1="zifuchuan123" ...

  6. VS2017编写c/c++汇编函数并调用

    首先在VS里面创建个空项目,然后添加汇编文件 .asm,    右键asm文件属性  --- 常规,改成下图的设置  , 从生成中排除改为否, 项类型改为自定义生成工具 然后点确定. 再次右键asm文 ...

  7. Abaqus 载荷分类(部分)

    目录 1. 集中载荷 1.1 集中载荷施加方法 1.2 定义集中跟随力 1.3 指定文件定义集中节点力 2. 分布载荷 2.1 分布载荷分类 3. 热载荷 3.1 模拟热辐射 3.2 直接定义热流量 ...

  8. IDE - IDEA - 代码缩进设置

    1. 概述 Idea 的代码缩进设置 2. 场景 最近进场会从别的地方找到代码, 然后导入 Idea 时长出现 缩进的问题 会 弹出 以下提示 # 后面还有 3 个 可选按钮 this file in ...

  9. logstash output到kafka记录与总结( No entry found for connection 2)

    简述 本文记录logstash的output配置为kafka的过程.这里是简单的例子,输入为stdin,本文主要目的是为了记录在这次配置过程中遇到的问题和解决的过程及总结. 关于kafka集群的搭建可 ...

  10. ioutils

    import yaml import json import csv import configparser class IoUtils(object): """ dep ...