从布尔排序矩阵

时间:2019-12-06 13:04:54

标签: python pandas boolean

我想将我的数据分为两类(真/假)。我有一个矩阵“ arr” =(2500,128,3)和一个布尔数组“ bool” =(2500,1),问题是我无法使用以下方法对其进行排序:

true = arr[bool]
false = arr[~bool]

由于我的数组中缺少维度。

如果有10个真实的事件,则变量的形状应如下所示:

true = (10,128,3) 
false = (2490,128,3)

1 个答案:

答案 0 :(得分:1)

ary = np.random.rand(2500,128,3)
print(ary.shape)
>>> (2500L, 128L, 3L)

ary_bool = np.random.randint(0,2,size=(2500,1))
print(ary_bool.shape)
>>> (2500L, 1L)

true_mat = ary[ary_bool.squeeze() == 1]
false_mat = ary[ary_bool.squeeze() == 0]

print(true_mat.shape)
print(false_mat.shape)
>>> (1277L, 128L, 3L)
>>> (1223L, 128L, 3L)