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

如何为r、g、b二维numpy数组新增第三维度以适配np.concatenate拼接需求

单通道数组新增第三维的实现方法

  • 方法1:使用np.newaxis索引新增维度
    直接在数组索引末尾加np.newaxis(等价于Python内置的None)即可在最后一维新增长度为1的维度,转换后数组shape为(379, 754, 1):
    示例代码:r[..., np.newaxis]、g[..., None](两者效果完全一致)
  • 方法2:使用np.expand_dims显式指定新增维度位置
    调用Numpy内置的维度扩展方法,指定axis=-1代表在最后一维新增:
    示例代码:np.expand_dims(r, axis=-1)
  • 方法3:使用reshape方法重设数组形状
    直接指定新的维度结构,保留原有前两维大小,新增第三维长度为1:
    示例代码:r.reshape(379, 754, 1) 或者通用写法r.reshape(*r.shape, 1)

代码修正说明

除了给单通道数组新增维度外,你原有np.concatenate的拼接轴参数axis=0设置错误,要得到和fs匹配的(379, 754, 3)形状,需要在第三维拼接,即设置axis=2,修正后完整代码示例:

# 使用np.newaxis方案
fs = fs + np.concatenate((r[..., np.newaxis], g[..., np.newaxis], b[..., np.newaxis]), axis=2)

更简便的替代方案:直接用np.stack方法拼接三个数组,该方法会自动为每个数组新增维度后拼接,无需手动扩展维度:

# stack方案直接输出shape为(379, 754, 3)的数组
fs = fs + np.stack((r, g, b), axis=-1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 12:15:00