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

如何在Python中对行列数不同的矩阵求和(无需自定义函数)

不等行数二维矩阵的求和实现方法

问题说明

我有两个二维矩阵:[[1,2],[0,0]] 和 [[4,8],[0,0],[5,6]],希望求和得到矩阵 [[5,10],[0,0],[5,6]]。已知numpy直接执行m1+m2会因形状不匹配报错,请问无需编写自定义函数的最简单实现方法是什么?

解决方案

利用numpy的np.pad函数将行数较少的矩阵补全为与另一矩阵相同的形状(缺失行补0),再执行逐元素相加即可:

import numpy as np
m1 = np.array([[1, 2], [0, 0]])
m2 = np.array([[4, 8], [0, 0], [5, 6]])

# 补全m1的行数至与m2一致,缺失行填充0
m1_padded = np.pad(m1, ((0, m2.shape[0] - m1.shape[0]), (0, 0)), mode='constant')
res = m1_padded + m2

print(res)
# 输出结果:
# [[ 5 10]
#  [ 0  0]
#  [ 5  6]]

原理说明

numpy的数组相加要求形状完全匹配,通过np.pad给m1补充1行全0元素后,m1_padded的形状变为(3,2),与m2一致,此时就能直接执行逐元素相加,得到目标结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 18:09:25