返回顶部
首页 > 资讯 > 后端开发 > Python >Numpy如何检查数组全为零的几种方法
  • 617
分享到

Numpy如何检查数组全为零的几种方法

2024-04-02 19:04:59 617人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录概要1 numpy.any()2 numpy.count_nonzero()3 numpy.all()  4. 多维数组可以分a

概要

        简单介绍几种用于判断numpy数组是否全零的测试方法。

1 numpy.any()

        numpy.any()函数用于检查一个numpy数字是否存在任何一个非0元素,因此将numpy.any()的结果取反即得“numpy数组是否全0”的结果。例如:      


import numpy as np
 
print('Using numpy.any()...')
a_1D = np.zeros(5)
print('Is a_1D all zeros?: ', not(np.any(a_1D)))
print('Is a_1D all zeros?: ', ~(np.any(a_1D)))
a_1D[2] = -1
print('Is a_1D all zeros?: ', not(np.any(a_1D)))
 
a_2D = np.zeros((2,3))
print(a_2D)
print('Is a_2D all zeros?: ', not(np.any(a_2D)))
a_2D[1,2] = 0.1
print('Is a_2D all zeros?: ', not(np.any(a_2D)))

输出结果:

        Using numpy.any()...
        Is a_1D all zeros?:  True
        Is a_1D all zeros?:  True
        Is a_1D all zeros?:  False
        [[0. 0. 0.]
         [0. 0. 0.]]
        Is a_2D all zeros?:  True
        Is a_2D all zeros?:  False

        注意,python中逻辑取反可以用"~"也可以用"not",但是不能用“!”(“!=”是比较运算符--comparison operator, 只能用于比如说"b!=c"这样)。另外,"~"和"not"也是有区别的,参见以下第4节。

2 numpy.count_nonzero()

      numpy.count_nonzero()用于对数组的0元素个数进行计数,因此也可以用来执行是否全0的判断。用法如下:


print('Using numpy.nonzero()...')
a = np.array([1,2,3,0,0,1])
print('Number of zeros in a = ',np.count_nonzero(a))
print('Is a all zeros?: ', np.count_nonzero(a)==0)
a[:] = 0 # Force a to all-zeros array
print('Is a all zeros?: ', np.count_nonzero(a)==0)
print('Is a all zeros?: ', not np.count_nonzero(a))

        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的转换。


print('')
print('Using numpy.all()...')
a = np.zeros(10)
print('Is a all zeros?: ', np.all(a==0))

        Using numpy.all()...
        Is a all zeros?:  True 

4. 多维数组可以分axis进行判断

        对于多维数组(这正是numpy正真发挥强悍实力的地方)以上函数在缺省情况下是对整个数组进行统一判断,但是也可以通过axis参数指定沿指定轴分别处理。如下例所示:


print('')
print('Judge according to the specified axis')
a_2D = np.zeros((2,3))
a_2D[1,2] = 0.1
print(a_2D)
print('Is each col of a_2D all zeros?: ', ~(np.any(a_2D, axis=0)))
print('Is each row of a_2D all zeros?: ', ~(np.any(a_2D, axis=1)))

Judge according to the specified axis
[[0.  0.  0. ]
 [0.  0.  0.1]]
Is each col of a_2D all zeros?:  [ True  True False]
Is each row of a_2D all zeros?:  [ True False]

        当指定axis=0时相当于对2维数组按列判断是否全0,指定axis=1时相当于对2维数组按行判断是否全0。当然,这里所说的行和列的概念是从传统的2维数组或者矩阵里继承而来的概念,当考虑更高维数组的时候,行和列这个概念就不再适用了。关于高维数组(也称:Tensor,张量)的axis将另文介绍。

        另外,前面提到表示逻辑取反的“~”和“not”是有所不同的。具体来说就是,not只接受一个操作数,因此以上这个例子如果将"~"改为not的话会报错,如下所示:


print('Is each col of a_2D all zeros?: ', not(np.any(a_2D, axis=0)))
print('Is each row of a_2D all zeros?: ', not(np.any(a_2D, axis=1)))

        报错如下: 

        而“~”是所谓的Bitwise NOT operator.

        如果"~"的输入是一个整数的的话,它会将输入数的所有比特都取反。如果是一个numpy 数组的话,则会对其中每一个数执行按位逻辑取反操作。如果是一个numpy布尔类型(True, False)数组的话,则会对其中每一个布尔数执行逻辑取反操作--以上例子中正是这种用法。

到此这篇关于Numpy如何检查数组全为零的几种方法的文章就介绍到这了,更多相关Numpy 检查数组全为零内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Numpy如何检查数组全为零的几种方法

本文链接: https://lsjlt.com/news/154640.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Numpy如何检查数组全为零的几种方法
    目录概要1 numpy.any()2 numpy.count_nonzero()3 numpy.all()  4. 多维数组可以分a...
    99+
    2024-04-02
  • php如何检查值在数组的第几行
    这篇文章主要介绍“php如何检查值在数组的第几行”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“php如何检查值在数组的第几行”文章能帮助大家解决问题。检查行数的方法:1、用“array_values...
    99+
    2023-06-30
  • numpy产生随机数的几种方法
    目录1.np.random.rand 生成一个0到1之间的均匀分布2.np.random.randn 返回一个符合标准正态分布的数组。3.np.random.randint返回一定范...
    99+
    2023-02-10
    numpy 产生随机数 numpy 生随机数
  • php如何检查一个数组有几个数值
    本篇内容介绍了“php如何检查一个数组有几个数值”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!方法:1、创建计数器变量,值设为0;2、循环遍...
    99+
    2023-06-30
  • JavaScript如何检查值是否为数组
    这篇文章主要介绍JavaScript如何检查值是否为数组,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!检查值是否为数组const arr = [1, 2, 3];&n...
    99+
    2023-06-27
  • php将json转为数组的方法有哪些几种
    这篇“php将json转为数组的方法有哪些几种”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php将json转为数组的方法有...
    99+
    2023-07-05
  • php如何检测数组是否全为空
    今天小编给大家分享一下php如何检测数组是否全为空的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。检测数组是否全为空的2个函数...
    99+
    2023-06-30
  • JavaScript中清空数组的几种方法
    目录Array.prototype.splice()将 length 设置为 0分配新的空数组length = 0和 Array = [] 之间的差异?Array.prototype...
    99+
    2023-02-17
    JavaScript清空数组
  • Python中数组的几种使用方法
    二维数组的初始化 matirx_done = [[0 for i in range(0, len(matirx))]for j in range(0, len(matirx[0]))] 就将其初始化为一个与matrix相同大小...
    99+
    2023-01-31
    几种 数组 使用方法
  • Mysql 如何分组查询取最新的几种方案
    1.row_number函数 (mysql8以上支持) 示例: SELECT * FROM ( SELECT *, row_number ( ) over ( PARTITION ...
    99+
    2023-08-31
    mysql 数据库 sql
  • Java检查值是否存在于数组中的3种方法
    在 Java 中,有许多方法可以检查此数组中是否存在特定元素。 1)使用线性搜索方法 时间复杂度:O(N) 辅助空间:O(1) for (int element : arr) {     if (elemen...
    99+
    2023-09-17
    java 算法
  • 浅谈shell 遍历数组的几种方法
    背景 某天遇到一个问题,现象如下:第一种遍历正常打印元素,然而第二种遍历只会打印一个元素! #!/bin/bash # $1 代表文件目录 # 执行 eg: # sh your_shell.sh /user/li...
    99+
    2022-06-04
    shell 遍历数组
  • JS数组降维的几种方法详解
    二维数组降维 使用数组实例方法concat和ES6扩展运算符降维 let arr=[1,2,[3,4],5]; let arr1=[].concat(...arr); ...
    99+
    2024-04-02
  • Javascript数组去重的几种方法详解
    目录数组去重1 双层for循环(类似冒泡排序的双层循环写法)2 循环和indexof、循环和includes3 利用对象属性不能重复去重4 ES6 Set5 ES6 Array. p...
    99+
    2024-04-02
  • Python数组变形的几种实现方法
    目录1.reshape2.flatten3.ravel4.stack(1)concatenate(2)vstack(3)dstack(4)hstack(5)r,c模式5.split(...
    99+
    2024-04-02
  • 数组array的5类方法有哪几种
    本篇内容介绍了“数组array的5类方法有哪几种”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、数组变形...
    99+
    2024-04-02
  • JavaScript数组去重的几种方法详谈
    目录一、Set去重二、双重for循环去重三、利用indexOf去重四、利用icludes去重五、filter六、Map总结一、Set去重 function funSet(arr...
    99+
    2024-04-02
  • JavaScript判断数组成员的几种方法
    目录indexOf()incudes()find()与findIndex()find()findIndex()对于NaN值最后前言: 在开发中经常需要我们在数组中查找元素又或者是判断...
    99+
    2022-11-13
    JavaScript判断数组成员方法 JavaScript判断数组成员
  • PHP中的is_array()函数:如何检查变量是否为数组
    PHP是一种广泛使用的服务器端编程语言,它包含了许多有用的函数和特性,其中之一就是is_array()函数。在PHP中,数组是一种非常常见的数据结构,它能够同时存储多个值,并且可以通过索引或关联键来访问这些值。在进行编程时,我们有时需要检查...
    99+
    2023-11-03
    PHP 检查 is_array()
  • java判断是否为整数的几种方法
    方法一:用JAVA自带的函数public static boolean isNumeric(String str){ for (int i = str.length();--i>=0;){ if (!Character...
    99+
    2015-08-30
    java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作