You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何将不同维度的3D数组合并为(60,60,60)维度数组

实现方案

默认你使用NumPy处理多维数组,两种常见实现方式如下:

方式1:展平补零后重塑

这种方式会保留所有原始元素,空缺位置用0填充,最终得到目标维度数组:

import numpy as np

# 假设三个数组分别为arr1, arr2, arr3
# arr1.shape = (60,10,20), arr2.shape=(60,20,10), arr3.shape=(60,30,30)

# 把每个数组的后两维展平
arr1_flat = arr1.reshape(60, -1) # 维度变为(60, 200)
arr2_flat = arr2.reshape(60, -1) # 维度变为(60, 200)
arr3_flat = arr3.reshape(60, -1) # 维度变为(60, 900)

# 拼接展平后的数组
concat_flat = np.concatenate([arr1_flat, arr2_flat, arr3_flat], axis=1) # 维度变为(60, 1300)

# 补零到第二维长度为3600(因为60*60=3600)
pad_width = ((0,0), (0, 3600 - concat_flat.shape[1]))
padded_flat = np.pad(concat_flat, pad_width=pad_width, mode='constant', constant_values=0)

# 重塑为目标维度
result = padded_flat.reshape(60, 60, 60)

方式2:按空间位置拼接填充

如果你希望把三个数组放在后两维60x60平面的指定位置,剩下区域补0,可参考如下实现:

import numpy as np

# 初始化全零的目标数组
result = np.zeros((60,60,60), dtype=arr1.dtype)

# 把arr1放到左上角 [:, 0:10, 0:20]
result[:, 0:10, 0:20] = arr1

# 把arr2放到arr1右侧 [:, 0:20, 20:30]
result[:, 0:20, 20:30] = arr2

# 把arr3放到左下角 [:, 10:40, 0:30]
result[:, 10:40, 0:30] = arr3

# 其余位置默认保留0,你也可以根据需求调整放置位置

注意:原始三个数组的总元素量仅为目标数组的约36%,两种方式都会产生大量占位值,你可以根据实际业务需求调整占位值或者合并逻辑。

内容的提问来源于stack exchange,提问作者ci song

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 07:06:04