# 1.真值测试

• np.all()判断是否全为真：如果是就返回True；否则返回False。
• np.any()判断是否至少有一个为真：如果有就返回True；否则返回False。

## 【例1】真值测试举例

>>> a = np.random.randint(0,5,10)
>>> b = np.random.randint(0,5,10)
>>> print(a)
[4 1 0 2 4 0 1 0 4 4]
>>> print(b)
[0 2 1 4 4 2 4 2 0 0]
>>> print(np.all(a==a))
True
>>> print(np.all(a==b))
False
>>> print(np.any(a==b))
True
>>> print(np.all([2,np.nan]))
True


# 2.数组内容

## 【例2】isnan()举例

>>> print(np.isnan([2,3.0,np.nan,4]))
[False False  True False]


# 3.逻辑运算

• not 逻辑非
• and 逻辑与
• or 逻辑或
• xor 逻辑异或
>>> a = np.random.randint(0,5,10)>3
>>> print(a)
[False False False  True False  True False False False  True]
>>> b = np.random.randint(0,5,10)<2
>>> print(b)
[False False  True False  True False False False  True  True]
>>> print(np.logical_not(a))
[ True  True  True False  True False  True  True  True False]
>>> print(np.logical_and(a,b))
[False False False False False False False False False  True]
>>> print(np.logical_or(a,b))
[False False  True  True  True  True False False  True  True]
>>> print(np.logical_xor(a,b))
[False False  True  True  True  True False False  True False]


# 4.对照

• greater: >
• greater_equal: >=
• equal: ==
• not_equal: !=
• less: <
• less_equal: <=
• isclose:是否接近
• allclose:是否全部接近

>>> a = np.random.randint(0,5,10)
>>> print(a)
[3 1 4 1 0 0 4 1 0 4]
>>> print(np.greater(a,2))
[ True False  True False False False  True False False  True]
>>> print(np.greater_equal(a,2))
[ True False  True False False False  True False False  True]
>>> print(np.less(a,3))
[False  True False  True  True  True False  True  True False]
>>> print(np.less_equal(a,3))
[ True  True False  True  True  True False  True  True False]
>>> print(np.equal(a,2))
[False False False False False False False False False False]
>>> print(np.not_equal(a,2))
[ True  True  True  True  True  True  True  True  True  True]
>>> print(np.isclose([1e10,1e-8], [1.0001e10,1e-9]))
[False  True]


allclose等同于isclose+logical_and的功能，isclose(a,b)返回True的前提是：

absolute(a - b) <= (atol + rtol * absolute(b))

05-31 8461

12-12 1093
03-07 1145
10-28 152
07-22 7040
12-13 213