You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Numpy移除3D数组全零列且不降低维度

移除3D Numpy数组中的全零列

要精准移除3D数组中任意位置的全零列且保持数组维度结构,可通过定位非全零列的方式实现,具体步骤如下:

解决方案代码

import numpy as np

vals = [1,0,3,4,0,6,7,8,9,10,11,12]
array = np.reshape(vals, (2,2,3))

# 生成非全零列的掩码:检查每个列在所有层和行维度上是否不全为0
non_zero_cols = ~np.all(array == 0, axis=(0, 1))
# 保留非全零列,维持3D数组结构
filtered_array = array[:, :, non_zero_cols]

print(filtered_array)

输出结果

[[[ 1  3]
  [ 4  6]]

 [[ 7  9]
  [10 12]]]

关键说明

  • np.all(array == 0, axis=(0, 1)):遍历数组的层(axis=0)和行(axis=1)维度,检查每个列(axis=2)是否全为0,返回布尔数组,True对应全零列。
  • ~ 对布尔数组取反得到非全零列的掩码,用该掩码索引原数组的列维度,即可保留目标列且不改变数组的3D结构。

内容的提问来源于stack exchange,提问作者cm_epr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 20:22:37