Numpy 如何在特定维度中过滤出元素

Numpy 如何在特定维度中过滤出元素,numpy,torch,Numpy,Torch,假设张量a具有形状(128,20,10)。我想根据一个条件将这个张量过滤成(128,19,10)形状的张量b:在每个(20,10)矩阵中,如果列的总和为零,我想删除一行。我如何通过切片来实现这一点 我应该能够做以下几点: mask = a.abs().sum(dim=2) != 0 a = a[mask] 但是这给了我一个错误的形状。我只需要一个后整形吗a=a[mask]。视图(128,19,10)?形状为1d,但值是否正确?

假设张量
a
具有形状
(128,20,10)
。我想根据一个条件将这个张量过滤成
(128,19,10)
形状的张量b:在每个
(20,10)
矩阵中,如果列的总和为零,我想删除一行。我如何通过切片来实现这一点

我应该能够做以下几点:

mask = a.abs().sum(dim=2) != 0
a = a[mask]

但是这给了我一个错误的形状。

我只需要一个后整形吗<代码>a=a[mask]。视图(128,19,10)?形状为1d,但值是否正确?