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

如何用NumPy将单通道2D数组转换为三通道2D数组(图像处理)

将NumPy单通道2D数组转为三通道数组

这里有几种简洁高效的方法实现你要的转换:

方法1:使用np.stack(最直观)

利用stack函数在最后一个维度上重复三次原数组:

import numpy as np

a = np.array([[255,0],[0,255]])
b = np.stack([a, a, a], axis=-1)

该操作会在数组末尾添加新维度,将三个相同的单通道数组堆叠,得到目标三通道结构。

方法2:使用np.repeat

先给原数组增加一个维度,再在该维度上重复三次:

b = np.repeat(a[..., np.newaxis], 3, axis=-1)

a[..., np.newaxis]将2D数组转为形状为(2,2,1)的3D数组,后续用repeat在最后一维重复3次,即可得到(2,2,3)的目标数组。

方法3:利用广播机制

通过与长度为3的数组运算触发广播,自动扩展维度:

b = a[..., np.newaxis] * np.ones(3, dtype=a.dtype)

这种方式借助NumPy广播特性,无需显式重复数据,内存效率更高。

三种方法的输出结果一致,均为你示例中的目标数组:

print(b)
# 输出:
# [[[255 255 255]
#   [  0   0   0]]
# 
#  [[  0   0   0]
#   [255 255 255]]]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 16:31:04