从 3d numpy 数组中删除 2d 切片

Cla*_*gen 5 python numpy cube multidimensional-array

我需要从 3D numpy 立方体中删除最后一个数组。我有:

a = np.array(
[[[1,2,3],
 [4,5,6],
 [7,8,9]],

[[9,8,7],
 [6,5,4],
 [3,2,1]],

[[0,0,0],
 [0,0,0],
 [0,0,0]],

[[0,0,0],
 [0,0,0],
 [0,0,0]]])
Run Code Online (Sandbox Code Playgroud)

如何使用零子数组(如立方体底部)删除数组np.delete

(我不能简单地删除所有零值,因为顶部的数据中会有零)

raf*_*elc 4

对于 3D 立方体,您可以检查all最后两个轴

a = np.asarray(a)
a[~(a==0).all((2,1))]
Run Code Online (Sandbox Code Playgroud)
array([[[1, 2, 3],
        [4, 5, 6],
        [7, 8, 9]],

       [[9, 8, 7],
        [6, 5, 4],
        [3, 2, 1]]])
Run Code Online (Sandbox Code Playgroud)