Python堆叠多个多维数组获取指定形状数组的方法咨询
解决方案
你需要沿现有数组的第2个维度(索引为1的轴)拼接6个形状相同的数组,不要使用默认新增维度的np.stack,直接用np.concatenate即可实现目标。
推荐实现代码
# 将所有待拼接的数组存入列表 arr_list = [y_0, y_1, y_2, y_3, y_4, y_5] # 沿axis=1拼接,直接得到目标形状 res = np.concatenate(arr_list, axis=1) # 验证输出形状为 (1, 6, 10, 1) print(res.shape)
若坚持使用np.stack的调整方案
如果一定要用np.stack,可以在堆叠后删除多余的维度:
arr_list = [y_0, y_1, y_2, y_3, y_4, y_5] # 堆叠后会得到形状(1,6,1,10,1),删除索引为2的多余维度即可 res = np.stack(arr_list, axis=1).squeeze(axis=2) print(res.shape)
正确性验证
你可以通过以下方式确认拼接结果正确:
np.array_equal(res[:, 0, :, :], y_0[:, 0, :, :])返回True- 以此类推,
res[:, i, :, :]与y_i[:, 0, :, :]所有数值完全一致
内容的提问来源于stack exchange,提问作者JanStas
相关产品推荐
相关产品推荐

