Python中Numpy.nonzero()函数
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()函数的更多相关文章
- Python中numpy.apply_along_axis()函数的用法
numpy.apply_along_axis(func, axis, arr, *args, **kwargs): 必选参数:func,axis,arr.其中func是我们自定义的一个函数,函数fun ...
- python 中numpy dot函数的使用方法
这个函数在的数字信号处理中用处还是比较广泛的,函数的具体定义如下所示: numpy.dot(a, b, out=None) 该函数的作用是获取两个元素a,b的乘积,表示的含义如下所示: dot(a, ...
- python中numpy.sum()函数
讲解清晰,转载自:https://blog.csdn.net/rifengxxc/article/details/75008427 众所周知,sum不传参的时候,是所有元素的总和.这里就不说了. 1 ...
- python中numpy对函数进行矢量化转换
在对numpy的数组进行操作时,我们应该尽量避免循环操作,尽可能利用矢量化函数来避免循环. 但是,直接将自定义函数应用在numpy数组之上会报错,我们需要将函数进行矢量化转换. def Theta(x ...
- python中numpy.concatenate()函数的使用
numpy库数组拼接np.concatenate 原文:https://blog.csdn.net/zyl1042635242/article/details/43162031 思路:numpy提供了 ...
- Python中Numpy及Matplotlib使用
Python中Numpy及Matplotlib使用 1. Jupyter Notebooks 作为小白,我现在使用的python编辑器是Jupyter Notebook,非常的好用,推荐!!! 你可以 ...
- python --- Python中的callable 函数
python --- Python中的callable 函数 转自: http://archive.cnblogs.com/a/1798319/ Python中的callable 函数 callabl ...
- python中使用zip函数出现<zip object at 0x02A9E418>
在Python中使用zip函数,出现<zip object at 0x02A9E418>错误的原因是,你是用的是python2点多的版本,python3.0对python做了改动 zip方 ...
- [转载]python中multiprocessing.pool函数介绍
原文地址:http://blog.sina.com.cn/s/blog_5fa432b40101kwpi.html 作者:龙峰 摘自:http://hi.baidu.com/xjtukanif/blo ...
随机推荐
- jvm(3):JVM调优
typora-root-url: ./ JVM调优思路 目的:减少full GC次数.减少STW时间(一次GC的时间) 手段: 打印GC日志-XX:+PrintGCDetails -XX:+Print ...
- 题解【洛谷P2513/CJOJ1345】[HAOI2009]逆序对数列
P1345 - [HAOI2009]逆序对数列 Description 对于一个数列{ai},如果有i<j且ai>aj,那么我们称ai与aj为一对逆序对数.若对于任意一个由1~n自然数组成 ...
- MySQL性能优化---优化方案
1.对查询进行优化,应尽量避免全表查询,首先考虑在where及order by涉及的列上建立索引: 2.应尽量避免where子句中对字段进行null值判断,否则将导致引擎放弃使用索引而进行全表扫描: ...
- sublime3使用技巧
1.鼠标悬浮,显示文件引用 Preference ——> Settings ——> "index_files": true (保存,重新打开即可) 2 ...
- 深度学习之tensorflow框架(下)
def tensor_demo(): """ 张量的演示 :return: """ tensor1 = tf.constant(4.0) t ...
- 威佐夫博奕(Wythoff Game)poj 1067
有两堆各若干个物品,两个人轮流从某一堆或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜. 这种情况下是颇为复杂的.我们用(ak,bk)(ak ≤ bk ,k=0,1,2,…, ...
- vue使用axios访问后台接口
链接1:https://segmentfault.com/a/1190000012635783#item-2 // axios 使用post方式传递参数,后端接受不到,怎么解决 链接2:http ...
- Refusing to install package with name "webpack" under a package
最近学习webpack 知识时 下载依赖结果报了这个错 查阅资料后发现是 这个name 不能使用所需要安装包的名字! 换为其他之后 再次操作命令 就没问题了
- linux 复制系统盘 dd
lsblk sudo dd if=/dev/mmcblk0 of=/dev/sda bs=8M sudo watch -n 5 pkill -USR1 ^dd$
- go基础_切片
切片创建方式 1.通过数组创建 2.通过内置函数make创建 切片允许的操作 1.追加元素 2.通过内置函数make创建 package main import "fmt" fun ...