Python 判断数组中元素是否都满足某条件(比如是否都大于0)
•
Python
这里记录下一个在代码中和经验贴中都常见的错误,即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,是正确的
本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://net2asp.com/f88925cb92.html
