概要 简单介绍几种用于判断numpy数组是否全零的测试方法。 1,numpy.any() numpy.any()函数用于检查一个numpy数字是否存在任何一个非0元素,因此将numpy.any()的结果取反即得numpy数组是否全0的结果。例如: import numpy as npprint(Using numpy.any()...)a_
概要 简单介绍几种用于判断numpy数组是否全零的测试方法。 1,numpy.any() numpy.any()函数用于检查一个numpy数字是否存在任何一个非0元素,因此将numpy.any()的结果取反即得“numpy数组是否全0”的结果。例如:
输出结果:
注意,python中逻辑取反可以用"~"也可以用"not",但是不能用“!”(“!=”是比较运算符--comparison operator, 只能用于比如说"b!=c"这样)。另外,"~"和"not"也是有区别的,参见以下第4节。 2,numpy.count_nonzero() numpy.count_nonzero()用于对数组的0元素个数进行计数,因此也可以用来执行是否全0的判断。用法如下:
Using numpy.nonzero()... Number of zeros in a = 4 Is a all zeros?: False Is a all zeros?: True Is a all zeros?: True 3,numpy.all() 用numpy.all()也可以实现这一功能。以下例子利用了python内部会自动进行0--False, 1--True的转换。
Using numpy.all()... Is a all zeros?: True 4. 多维数组可以分axis进行判断 对于多维数组(这正是numpy正真发挥强悍实力的地方)以上函数在缺省情况下是对整个数组进行统一判断,但是也可以通过axis参数指定沿指定轴分别处理。如下例所示:
当指定axis=0时相当于对2维数组按列判断是否全0,指定axis=1时相当于对2维数组按行判断是否全0。当然,这里所说的行和列的概念是从传统的2维数组或者矩阵里继承而来的概念,当考虑更高维数组的时候,行和列这个概念就不再适用了。关于高维数组(也称:Tensor,张量)的axis将另文介绍。
报错如下:
|
2019-06-18
2019-07-04
2021-05-23
2021-05-27
2021-05-27