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

高维数组乘法疑问:NumPy中@运算符对三维数组的作用

三维NumPy数组的@运算符解析

array3的具体内容

当array1和array2为形状(3,3,3)的三维数组时,@运算符会以第一个维度作为批量维度,对后两个维度对应的二维子矩阵逐一执行矩阵乘法:

  • 对于每个索引i(范围0到2),array3[i, :, :]等价于array1[i, :, :] @ array2[i, :, :]——也就是取两个数组中第i个3x3的二维子矩阵,执行标准的矩阵乘法(行乘列求和)。
  • 最终array3的每个array3[i]都是一个3x3的结果矩阵,整体形状保持(3,3,3)。

具体到元素计算逻辑:
array3[i,j,k] = sum(array1[i,j,m] * array2[i,m,k] for m in 0..2),这就是标准矩阵乘法中对应位置元素的计算方式,只是每个i都独立完成一次这样的计算。

@运算符的数学含义

这里的@实现的是批量矩阵乘法,它将三维数组视为一组二维矩阵的集合(批次),对批次中位置对应的每一对矩阵,独立执行标准的矩阵乘法运算。这种操作可以一次性完成多组矩阵的乘法计算,充分利用NumPy的向量化运算能力,在批量数据处理、深度学习等场景中能显著提升计算效率。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 10:10:23