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

如何将形状为(1,3,480,640)的NumPy图像数组转为(640,480,3)形状

NumPy图像数组维度调整方法

你持有的图像NumPy数组形状为(1, 3, 480, 640),维度顺序为(a, z, y, x),要转换为(x, y, z)顺序、形状(640, 480, 3)的数组,可按以下步骤操作:

  • 第一步:移除长度为1的冗余a维度
    调用np.squeeze()指定压除第0轴(即a维度),避免无差别压除其他可能长度为1的有效维度,处理后数组形状变为(3, 480, 640),维度顺序为(z, y, x)。
  • 第二步:调整轴顺序匹配目标维度
    调用transpose()方法重排轴顺序,将当前(z, y, x)顺序调整为(x, y, z),对应轴索引为(2, 1, 0)。

代码示例

import numpy as np

# 原数组,形状(1, 3, 480, 640),维度顺序(a,z,y,x)
origin_img = np.random.rand(1, 3, 480, 640)

# 分两步处理
squeezed_img = np.squeeze(origin_img, axis=0)  # 输出形状(3,480,640)
result_img = squeezed_img.transpose((2, 1, 0)) # 输出形状(640,480,3)

# 验证输出形状
print(result_img.shape)

如果需要精简代码,也可以通过一次轴重排+压除冗余维度一步完成:

result_img = origin_img.transpose((3, 2, 1, 0)).squeeze(axis=-1)

注意:调用squeeze()时务必传入axis参数指定要移除的维度,若直接调用无参数版本,当数组中其他维度(比如单通道z维度、特殊尺寸的y/x维度)长度恰好为1时,会被误删除导致维度错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 17:39:41