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

如何将两个形状为(50,5,5)的Numpy多维数组操作得到(50,5,10)数组?

解决方法:在第三维度拼接两个Numpy数组

嘿,先澄清一下:你说的“相加”应该是指把两个数组在第三个维度上合并起来吧?因为如果是常规的元素级相加(arr1 + arr2),结果还是保持(50,5,5)的形状,没法得到你要的(50,5,10)。

要实现这个需求,我们可以用Numpy里的拼接函数,下面给你两种常用的方法:

方法1:使用np.concatenate指定拼接轴

concatenate是Numpy通用的拼接函数,你只需要明确指定在**第3个维度(索引为2)**上拼接即可(Numpy的轴是从0开始计数的:(50,5,5)对应轴0=50,轴1=5,轴2=5)。

示例代码:

import numpy as np

# 生成两个测试用的(50,5,5)数组
arr1 = np.random.rand(50, 5, 5)
arr2 = np.random.rand(50, 5, 5)

# 在轴2上拼接
combined_arr = np.concatenate([arr1, arr2], axis=2)

# 检查结果形状
print(combined_arr.shape)  # 输出:(50, 5, 10)

方法2:使用np.dstack快速拼接

dstack是专门用于“深度方向”拼接的函数,对于三维数组来说,它会自动在最后一个维度(也就是这里的轴2)上拼接,代码更简洁:

示例代码:

import numpy as np

arr1 = np.random.rand(50, 5, 5)
arr2 = np.random.rand(50, 5, 5)

# 深度拼接
combined_arr = np.dstack([arr1, arr2])

print(combined_arr.shape)  # 输出:(50, 5, 10)

注意事项

  • 两个数组的前两个维度必须完全一致(都是50和5),否则拼接会报错;
  • 如果你确实需要元素级相加同时扩展维度,那得先对其中一个数组做维度扩展再广播相加,但这和你要的(50,5,10)形状不符,所以应该还是拼接的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:08:36