Python/Numpy:在二维数组中按行组合布尔掩码 [英] Python/Numpy: Combining boolean masks by row in 2D array

查看:39
本文介绍了Python/Numpy:在二维数组中按行组合布尔掩码的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个包含 n 行的布尔掩码的 2D numpy 数组,其中每行是一个包含 m 个掩码的数组.

I have a 2D numpy array of boolean masks with n rows where each row is an array of m masks.

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]]
          ]

有没有办法对每一行的掩码数组组合进行向量化,得到如下结果?

Is there a way to vectorize the combining of mask arrays in each row to get the following result?

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]
                  ]

提前感谢您的任何指导或建议.

Thank you for any guidance or suggestions in advance.

推荐答案

您正在尝试测试沿特定轴的所有元素是否都为真.使用 np.all

You're trying to testing whether all elements are true along a specific axis. Use 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]])

这篇关于Python/Numpy:在二维数组中按行组合布尔掩码的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆