Python中如何将二维数组插入三维数组的中间位置?
解决方案:将数组b插入数组a的中间
要实现把2D数组b插入到3D数组a的中间,关键是先让两者维度匹配,再完成插入操作,这里有两种简单的方法:
方法1:使用np.insert
这是最直接的方式,步骤如下:
- 先给
b增加一个维度,把它从(2,2)的2D数组转换成(1,2,2)的3D数组,这样才能和a的维度对齐; - 沿着
axis=0(也就是第一个维度),在索引1的位置插入扩展后的b。
完整代码:
import numpy as np # 创建初始数组 a = np.zeros((2,2,2)) b = np.ones((2,2)) # 扩展b的维度为3D b_3d = b[np.newaxis, :, :] # 等价于 b.reshape(1, 2, 2) # 执行插入操作 result = np.insert(a, 1, b_3d, axis=0) print(result)
方法2:使用np.concatenate手动拼接
如果你更喜欢拆分拼接的思路,可以把a分成前半部分、中间插入扩展后的b、后半部分,再把三者拼接起来:
import numpy as np a = np.zeros((2,2,2)) b = np.ones((2,2)) b_3d = b[np.newaxis, :, :] # 拆分a并拼接 result = np.concatenate([a[:1], b_3d, a[1:]], axis=0)
两种方法最终输出的结果都是你想要的:
array([[[0., 0.], [0., 0.]], [[1., 1.], [1., 1.]], [[0., 0.], [0., 0.]]])
内容的提问来源于stack exchange,提问作者hm8
相关产品推荐
相关产品推荐

