我有几个2D布尔数组,并试图创建一个位掩码数组(2**n),以保存所有这些在一起。
import numpy as np
np.random.seed(42)
mask_1 = np.random.choice(a=[False, True], size=(5,5))
mask_2 = np.random.choice(a=[False, True], size=(5,5))
mask_3 = np.random.choice(a=[False, True], size=(5,5))
mask = 2**0*mask_1 + 2**1*mask_2 + 2**2*mask_3
我不确定这是否是创建位掩码数组的正确方法。如果这是最好的方法,那么如何将mask
转换为不同的布尔数组?
1条答案
按热度按时间5cg8jx4n1#
我不完全清楚你希望你的位掩码有什么类型。在给定的示例中,您将得到一个
int
。这就是你想要的吗?如果你只是想要一个长度为3的布尔类型的“bitmask”数组,最好这样做如果需要二进制表示,可以使用现有的
np.unpackbits
方法。但在这种情况下,您可以直接通过从
a=[0,1]
中随机选择来生成此掩码。