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

如何将3D NumPy数组转换为2D数组并提取指定位置的数值

NumPy 3D数组转指定结构2D数组的实现方法

完全可以实现,你需要的是提取3D数组第三个维度的首个元素,直接用NumPy切片操作就可以高效完成:

核心实现代码

假设你的原始3D数组命名为arr,只需要一行代码即可得到目标结果:

result = arr[:, :, 0]

切片参数说明

  • 第一个::保留第一维度的所有元素(对应你原始数组中的2组二维数据)
  • 第二个::保留第二维度的所有元素(对应每组数据中的3行内容)
  • 第三个0:仅提取第三维度索引为0的数值,过滤掉后续两个0值

完整可运行示例

import numpy as np

# 初始化你给出的3D测试数组
arr = np.array([[[ 12.,  0.,  0.],
                 [ 15.,  0.,  0.],
                 [ 13.,  0.,  0.]],
                [[ 12.,  0.,  0.],
                 [ 11.,  0.,  0.],
                 [ 13.,  0.,  0.]]])

# 执行转换
result = arr[:, :, 0]
print(result)

输出结果

[[12. 15. 13.]
 [12. 11. 13.]]

备选方案(适用于非零值位置不固定的场景)

如果你需要的是提取所有非零值而非固定取第三维度首个元素,也可以用如下方法,前提是你确认每组非零值的数量和维度匹配:

result = arr[arr != 0].reshape(arr.shape[0], arr.shape[1])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 06:57:03