Python/Numpy:在二维数组中按行组合布尔掩码
Python/Numpy: Combining boolean masks by row in 2D array
我有一个包含 n 行的布尔掩码的 2D numpy 数组,其中每行是一个包含 m 个掩码的数组。
maskArr = [
[[True, False, True, False], [True, True, False, True], [True, True, False, True]],
[[False, True, False, True], [False, True, True, True], [True, True, False, True]],
[[True, False, True, False], [True, True, False, True], [True, True, False, True]],
[[False, True, False, True], [False, True, True, True], [True, True, False, True]],
[[True, False, True, False], [True, True, False, True], [True, True, False, True]],
[[False, True, False, True], [False, True, True, True], [True, True, False, True]]
]
有没有办法对每一行中的掩码数组的组合进行向量化以获得以下结果?
combinedMaskArr = [
[True, False, False, False],
[False, True, False, True],
[True, False, False, False],
[False, True, False, True],
[True, False, False, False],
[False, True, False, True]
]
感谢您提前提出任何指导或建议。
您正在尝试测试沿特定轴的所有元素是否都为真。使用 np.all
np.all(maskArr, axis=1)
输出
array([[ True, False, False, False],
[False, True, False, True],
[ True, False, False, False],
[False, True, False, True],
[ True, False, False, False],
[False, True, False, True]])
我有一个包含 n 行的布尔掩码的 2D numpy 数组,其中每行是一个包含 m 个掩码的数组。
maskArr = [
[[True, False, True, False], [True, True, False, True], [True, True, False, True]],
[[False, True, False, True], [False, True, True, True], [True, True, False, True]],
[[True, False, True, False], [True, True, False, True], [True, True, False, True]],
[[False, True, False, True], [False, True, True, True], [True, True, False, True]],
[[True, False, True, False], [True, True, False, True], [True, True, False, True]],
[[False, True, False, True], [False, True, True, True], [True, True, False, True]]
]
有没有办法对每一行中的掩码数组的组合进行向量化以获得以下结果?
combinedMaskArr = [
[True, False, False, False],
[False, True, False, True],
[True, False, False, False],
[False, True, False, True],
[True, False, False, False],
[False, True, False, True]
]
感谢您提前提出任何指导或建议。
您正在尝试测试沿特定轴的所有元素是否都为真。使用 np.all
np.all(maskArr, axis=1)
输出
array([[ True, False, False, False],
[False, True, False, True],
[ True, False, False, False],
[False, True, False, True],
[ True, False, False, False],
[False, True, False, True]])