我想将我的数据分为两类(真/假)。我有一个矩阵“ arr” =(2500,128,3)和一个布尔数组“ bool” =(2500,1),问题是我无法使用以下方法对其进行排序:
true = arr[bool]
false = arr[~bool]
由于我的数组中缺少维度。
如果有10个真实的事件,则变量的形状应如下所示:
true = (10,128,3)
false = (2490,128,3)
答案 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)