1. np.all()作用
np.all(arr, axis=0),表示在垂直方向上计算元素的与运算(AND)
np.all(arr, axis=1),表示在水平方向上计算元素的与运算(AND)
arr = np.array([[1, 1], [0, 1]])
print(arr)
print('********************')
boolean = np.all(arr, axis=1) # 矩阵 行方向 ,判断值是否完全一致
boolean2 = np.all(arr, axis=0) # 矩阵 列方向 ,判断值是否完全一致
print(boolean)
print('********************')
print(boolean2)
输出:
[[1 1]
[0 1]]
********************
[ True False]
********************
[False True]
2. 去除全零行或列
arr = np.array([[0, 1, 2], [0, 2, 3], [0, 0, 0]])
print(arr)
# 去除全零行
not_row = arr[[not np.all(arr[i] == 0) for i in range(arr.shape[0])], :]
print("*" * 20)
print(not_row)
# 去除全零列
bot_col = arr[:, [not np.all(arr[:, i] == 0) for i in range(arr.shape[1])]]
print("*" * 20)
print(bot_col)
输出:
[[0 1 2]
[0 2 3]
[0 0 0]]
********************
[[0 1 2]
[0 2 3]]
********************
[[1 2]
[2 3]
[0 0]]
参考资料:
[1] https://cloud.tencent.com/developer/ask/sof/976808
[2] https://blog.csdn.net/qq_40926887/article/details/124109670