前言:
今天在写代码时遇到两个问题,即:需要求解一个矩阵前N行所有元素为零,而前N+1行存在元素不为零。查了查发现用np.all() 和 np.any()两个函数可以解决
np.all(np.array) 对矩阵所有元素做与操作,所有为True则返回True
np.any(np.array) 对矩阵所有元素做或运算,存在True则返回True
例如:
我要求某矩阵A前n行是否全为零,则可通过以下方式
if np.all(A[:n, :] == 0):
print("A矩阵前n行所有元素均为零")
# A[:n, :] == 0, A中的元素为零时则变为True, 不为零时则变为False。只有当所有元素都为零才会返回所有元素都为True的矩阵
此外,我还想知道矩阵A的前N+1行是否存在不为零的元素,可以使用np.any()
if np.any(A[:n+1,:] !=0 ):
print("A矩阵前n+1行存在元素不为零")
# A[:n+1, :] != 0, 只要存在不为零的元素就会返回True