如何复制3维numpy数组的最后一列并追加到数组末尾
高效实现方案
直接用numpy原生的拼接方法就能完成,代码简洁,而且底层是C实现,处理大数组时性能也足够好:
import numpy as np # 初始化原数组 arr = np.array([[[ 7, 5, 93], [19, 4, 69], [62, 2, 52]], [[ 6, 1, 65], [41, 9, 94], [39, 4, 49]]]) # 核心拼接逻辑 result = np.concatenate([arr, arr[..., -1:]], axis=-1)
代码说明
- 用
arr[..., -1:]提取最后一维的最后一列:这里的...会自动匹配前面所有维度,-1:而非直接写-1是为了保留第三维的维度结构,避免降维导致无法拼接 axis=-1指定在最后一维进行拼接,符合追加列的需求
如果习惯用更简短的写法,也可以用np.append实现,效果完全一致,内部实际也是调用concatenate:
result = np.append(arr, arr[..., -1:], axis=-1)
内容的提问来源于stack exchange,提问作者Conrado Ermel
相关产品推荐
相关产品推荐

