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

标签 python numpy multidimensional-array cube

我需要从 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]]])

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

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

最佳答案

对于 3D 立方体,您可以根据最后两个轴检查全部

a = np.asarray(a)
a[~(a==0).all((2,1))]
<小时/>
array([[[1, 2, 3],
        [4, 5, 6],
        [7, 8, 9]],

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

关于python - 从 3d numpy 数组中删除 2d 切片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58275589/

相关文章:

python - 如何将两个图像序列应用到模型的输入?

python - Pandas - 在日内数据中广播每日数据

python - 平滑连接输入的正弦波

python - Lyapunov 指数代码输出 Nolds

c - 在 C 中传递二维数组

java - 二维数组值在未在 Java 中显式声明的情况下发生更改

当 var 被最明确地定义时,Python NameError

python - 如何使用名为 'bom_line_ids' 的 one2many 字段计算 Odoo 中产品的 BOM 总成本?

python - 屏蔽 Y 数组以仅获取其 X1==X2 的值

c++ - 嵌套的 std::arrays 中的数据是否保证是连续的?