如何为Numpy数组添加与原首尾列相同的新首尾列(含三维图像数组场景)
给Numpy三维数组首尾添加与原首尾列相同的新列
需求说明
需要对形状为 (rows, cols, depth) 的三维图像Numpy数组进行处理:在**列维度(对应shape的第二个维度)**的首尾各新增一列,其中新增的首列与原数组的首列完全一致,新增的末列与原数组的末列完全一致。
二维数组的效果示例:
原二维数组:
1 5 4 2 5 3处理后结果:
1 1 5 4 4 2 2 5 3 3
实现方案
利用Numpy的数组拼接功能即可完成,核心是先提取原数组的首尾列,再按列维度拼接。
代码示例
import numpy as np # 生成测试用三维数组(可替换为你的图像数组) image = np.random.randint(0, 10, size=(3, 4, 2)) # 形状为 (3行, 4列, 2深度) print("原数组形状:", image.shape) # 提取首列和末列(保持三维结构,避免拼接维度不匹配) first_col = image[:, 0:1, :] last_col = image[:, -1:, :] # 按列维度拼接首列、原数组、末列 result = np.concatenate([first_col, image, last_col], axis=1) print("处理后数组形状:", result.shape)
补充说明
- 使用
[:, 0:1, :]而非[:, 0, :]提取列,是为了保留数组的三维结构,避免提取出二维数组导致拼接时维度错误 - 也可以用
np.hstack()替代np.concatenate(),写法更简洁:result = np.hstack([first_col, image, last_col])
内容的提问来源于stack exchange,提问作者Giackkk
相关产品推荐
相关产品推荐

