Python 判断数组中元素是否都满足某条件(比如是否都大于0)

这里记录下一个在代码中和经验贴中都常见的错误,即np.array.any()和(np.array+判断条件).any()的区别。

首先,np.array.any()“或”操作,任意一个元素为True(或非0),则结果为True;而(np.array+判断条件).any(),举个例子为(np.array>0).any()表示判断该数组中是否存在元素>0

与之同理,np.array.all()“与”操作,所有元素为True(或非0),则结果为True;而(np.array+判断条件).all(),举个例子为(np.array>0).all()表示判断该数组中所有元素是否都>0

具体可以看以下代码展示:

import numpy as np
##定义一个列表
x=[0,2,4,6]
print(np.array(x).any())
###  输出结果为:True
print(np.array(x).all())
###  输出结果为:False
##若使用该方法判断数组是否有元素或所有元素满足某条件,不会报错,但是结果可能是错的
print(np.array(x).any()>0)
###  输出结果为:True,因为True默认为1,是>0的,此时结果是对的,但如果设置y=[-1,-2,-3],结果就错了
y=[-1,-2,-3]
print(np.array(y).any()>0)
###  输出结果为True,显然不对

##再看正确的判断方式
x=[0,2,4,6]
print((np.array(x)>0).any())
###  输出结果为True
y=[-1,-2,-3]
print((np.array(y)>0).any())
###  输出结果为False,是正确的

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值