参考链接: Python中的numpy.zeros_like
函数说明
numpy.all()
all(a, axis=None, out=None, keepdims=np._NoValue) Test whether all array elements along a given axis evaluate to True.
判断给定轴向上的***所有元素是否都为True*** 零为False,其他情况为True 如果axis为None,返回单个布尔值True或False
Notes ----- Not a Number (NaN), positive infinity and negative infinity evaluate to True because these are not equal to zero.
笔者翻译:不是数字(NaN),正无穷大和负无穷大的值都是’True’,因为它们不等于零。
numpy.all()代码
# NumPy all() 判断矩阵中 所有元素 是否 都为True
a2 = np.arange(5) # 生成一个矩阵 [0 1 2 3 4]
print("np.all(a2):", np.all(a2)) # 输出:False
a3 = np.array([0, 3, 0, 0, 0]) # 随手写一个矩阵 [0 3 0 0 0]
print("np.all(a3):", np.all(a3)) # 输出:False
a4 = np.zeros_like(a3) # 生成一个全是零的矩阵,形状与a3一样 [0 0 0 0 0]
print("np.all(a4):", np.all(a4)) # 输出:False
a5 = np.full_like(a3, False) # 生成一个全是False的矩阵,形状与a3一样
print("np.all(a5):", np.all(a5)) # 输出:False
a6 = np.full_like(a3, True) # 生成一个全是True的矩阵,形状与a3一样
print("np.all(a6):", np.all(a6)) # 输出:True
numpy.any()
any(a, axis=None, out=None, keepdims=np._NoValue) Test whether any array element along a given axis evaluates to True. Returns single boolean unless axis is not None
判断给定轴向上***是否有一个元素为True*** 如果axis为None,返回单个布尔值True或False
numpy.any() 代码
# import the necessary packages
import numpy as np
# NumPy any() 判断矩阵中 是否 有一个元素 为True
a2 = np.arange(5) # 生成一个矩阵 [0 1 2 3 4]
print("np.any(a2):", np.any(a2)) # 输出:True
a3 = np.array([0, 3, 0, 0, 0]) # 随手写一个矩阵
print("np.any(a3):", np.any(a3)) # 输出:True
a4 = np.zeros_like(a3) # 生成一个全是零的矩阵,形状与a3一样 [0 0 0 0 0]
print("np.any(a4):", np.any(a4)) # 输出:False
a5 = np.full_like(a3, False) # 生成一个全是False的矩阵,形状与a3一样
print("np.any(a5):", np.any(a5)) # 输出:False
a6 = np.full_like(a3, True) # 生成一个全是True的矩阵,形状与a3一样
print("np.any(a6):", np.any(a6)) # 输出:True
应用
基本用法
b1 = np.arange(36).reshape(2, 3, 6) # # 创建一个2*3*6矩阵`
print("b1:n", b1)
输出结果
[[[ 0 1 2 3 4 5] [ 6 7 8 9 10 11] [12 13 14 15 16 17]] [[18 19 20 21 22 23] [24 25 26 27 28 29] [30 31 32 33 34 35]]]
print("np.all(b1):", np.all(b1)) # 判断矩阵中所有元素是否都为True
输出结果
np.all(b1): False
print("np.any(b1):", np.any(b1)) # 判断矩阵中是否有一个为True
输出结果
np.any(b1): True
print("b1 < 15:n", b1 < 15) # 判断矩阵中每个元素是否小于15
输出结果
b1 < 15: [[[ True True True True True True] [ True True True True True True] [ True True True False False False]] [[False False False False False False] [False False False False False False] [False False False False False False]]]
进阶用法
b02 = np.all(b1, axis=0, keepdims=True) # 判断矩阵中 某个轴向上 所有元素是否都为True
print("np.all(b1, axis=0):n", b02)
输出结果
np.all(b1, axis=0): [[[False True True True True True] [ True True True True True True] [ True True True True True True]]]
b03 = np.any(b1, axis=0, keepdims=True) # 判断矩阵中 某个轴向上 是否有一个元素为True
print("np.any(b1, axis=0):n", b03)
输出结果
np.any(b1, axis=0): [[[ True True True True True True] [ True True True True True True] [ True True True True True True]]]
b02 = np.all(b1 < 15, axis=0, keepdims=True) # 判断矩阵中 某个轴向上 所有元素是否都小于15
print("(np.all(b1 < 15, axis=0):n", b02)
输出结果
(np.all(b1 < 15, axis=0): [[[False False False False False False] [False False False False False False] [False False False False False False]]]
b03 = np.any(b1 < 15, axis=0, keepdims=True) # 判断矩阵中 某个轴向上 是否有一个元素小于15。所有元素都大于15为False,有一个小于15即为True
print("np.any(b1 < 15, axis=0):n", b03)
输出结果
np.any(b1 < 15, axis=0): [[[ True True True True True True] [ True True True True True True] [ True True True False False False]]]
axis等于1或2(不能超过2)时大家自己试验吧。
关于axis = 0/1/2/3…的分析
请参考下面的文章 《Python NumPy中sum函数详解 axis与keepdims图解》
更多numpy.all() sample code
可以参考 https://www.programcreek.com/python/example/4960/numpy.all