Python Numpy根据条件将三维阵列缩减为二维阵列

Python Numpy根据条件将三维阵列缩减为二维阵列,python,numpy,Python,Numpy,我有一个这样的3d阵列: array([[[ 0, 1], [ 0, 0]], [[ 0, 0], [ 6, 7]]]) array([[1, 0], [0, 1]]) 我要做的是将其简化为二维数组,如下所示: array([[[ 0, 1], [ 0, 0]], [[ 0, 0], [ 6, 7]]]) array([[1, 0], [0, 1]

我有一个这样的3d阵列:

array([[[ 0,  1],
        [ 0,  0]],

        [[ 0,  0],
        [ 6,  7]]])
array([[1, 0],
       [0, 1]])
我要做的是将其简化为二维数组,如下所示:

array([[[ 0,  1],
        [ 0,  0]],

        [[ 0,  0],
        [ 6,  7]]])
array([[1, 0],
       [0, 1]])
其中,具有非零元素的原始子数组的每个子数组都有一个1,如果对应子数组的所有元素都为零,则为0

如何在没有循环的情况下干净地执行此操作?

您可以沿最后一个轴(
轴=-1
)使用: