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

如何在NumPy中对两个矩阵的对应列执行矩阵乘法并求和?

高效实现列外积求和的NumPy方法

已知两个形状为(2, N)的矩阵A和b,需要对每一列执行以下操作:取A的第i列(2x1列向量)与b的第i列的转置(1x2行向量)做矩阵乘法得到2x2矩阵,再将所有列对应的2x2矩阵求和。无需循环,用NumPy的向量化操作即可高效完成。

核心解法

直接使用NumPy的矩阵乘法运算符@(或np.matmul函数):

import numpy as np

A = np.array([[1, 3, 5],
              [2, 4, 6]])
b = np.array([[7, 9, 11],
              [8, 10, 12]])

# 直接计算所有列外积的和
result = A @ b.T
print(result)

运行后输出:

[[ 89  98]
 [116 128]]

原理验证

这个结果和手动分步计算的结果完全一致:

  • 第1列外积:[[1],[2]] @ [[7,8]] = [[7,8],[14,16]]
  • 第2列外积:[[3],[4]] @ [[9,10]] = [[27,30],[36,40]]
  • 第3列外积:[[5],[6]] @ [[11,12]] = [[55,60],[66,72]]
  • 求和结果:[[7+27+55, 8+30+60],[14+36+66,16+40+72]] = [[89,98],[116,128]]

为什么这个方法高效

矩阵乘法A @ b.T的本质就是将A的每一列与b的对应列做外积后求和,完全贴合你的需求。这种向量化操作由NumPy底层的C优化实现,避免了Python循环的开销,当N取值很大时,性能优势会非常明显。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 15:12:51