gpt4 book ai didi

python - 沿轴折叠掩码数组 - Python 中的 Numpy

转载 作者:太空宇宙 更新时间:2023-11-03 13:07:24 25 4
gpt4 key购买 nike

我有一个二维掩码数组,我想对 True 的值使用逻辑 OR 运算沿轴 0 折叠它。我想知道是否有一个 numpy 函数来完成这个过程。我的代码看起来像:

>>> all_masks
array([[False, False, False, ..., False, False, False],
[False, False, False, ..., False, False, False],
[False, False, False, ..., False, False, False],
[False, True, False, ..., False, True, False],
[False, False, False, ..., False, False, False],
[False, True, False, ..., False, True, False]])

>>> all_masks.shape
(6, 870)

>>> output_mask
array([False, True, False, ..., False, True, False])

>>> output_mask.shape
(870,)

我通过使用 for 循环实现了 output_mask 这个过程。但是我知道使用 for 循环会使我的代码变慢(而且有点困惑)所以我想知道这个过程是否可以通过 numpy 或类似的函数来完成?

使用 for 循环折叠掩码的代码:

mask_out = np.zeros(all_masks.shape[1], dtype=bool)
for mask in all_masks:
mask_out = mask_out | mask

return mask_out

最佳答案

您可以使用 ndarray.any :

all_masks = np.array([[False, False, False, False, False, False],
[False, False, False, False, False, False],
[False, False, False, False, False, False],
[False, True, False, False, True, False],
[False, False, False, False, False, False],
[False, True, False, False, True, False]])

all_masks.any(axis=0)

输出:

array([False,  True, False, False,  True, False])

关于python - 沿轴折叠掩码数组 - Python 中的 Numpy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54174856/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com