如何在Python中通过新增维度合并两个多维数组
如何将两个(3,2,3)数组合并为(2,3,2,3)数组
以下是几种可行的实现方式:
方法1:直接用np.array()包裹
直接将两个数组作为元素传入np.array(),会自动在最外层新增一个维度完成合并:
import numpy as np a = np.array([[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]],[[13,14,15],[16,17,18]]]) b = np.array([[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]],[[13,14,15],[16,17,18]]]) c = np.array([a, b]) print(c.shape) # 输出 (2, 3, 2, 3)
方法2:使用np.stack()函数
stack函数支持指定新增维度的位置,默认axis=0会在最前面创建新维度并合并数组:
c = np.stack([a, b], axis=0) print(c.shape) # 输出 (2, 3, 2, 3)
方法3:使用np.concatenate()+np.expand_dims()
先通过expand_dims给每个数组手动新增一个维度(形状变为(1,3,2,3)),再用concatenate在第0维拼接:
a_expanded = np.expand_dims(a, axis=0) b_expanded = np.expand_dims(b, axis=0) c = np.concatenate([a_expanded, b_expanded], axis=0) print(c.shape) # 输出 (2, 3, 2, 3)
内容的提问来源于stack exchange,提问作者Stata_user
相关产品推荐
相关产品推荐

