Numpy中如何实现二维矩阵与一维向量按行对应元素相加
Numpy矩阵按行叠加对应向量元素的实现方案
你需要的操作可以通过Numpy的广播特性直接实现,无需手写循环,运行效率更高,具体用法如下:
import numpy as np # 构造示例输入 matrix = np.array([[1, 2, 3], [4, 5, 6]]) vector = np.array([0.1, 0.2]) # 核心操作实现 result = matrix + vector.reshape(-1, 1) print(result)
核心操作:给向量新增列维度后直接相加,两种写法效果完全一致
- 写法1:用reshape调整形状
result = matrix + vector.reshape(-1, 1) - 写法2:用np.newaxis插入维度
result = matrix + vector[:, np.newaxis]
运行后输出结果和你给出的示例完全匹配:
[[1.1 2.1 3.1] [4.2 5.2 6.2]]
实现原理:
- 原vector是长度为M的一维数组,调整为(M,1)的二维结构后,符合Numpy的广播匹配规则
- 相加时会自动把每行的单个向量值,扩展到和矩阵列数相同的长度,再逐元素相加,最终得到MxN的结果矩阵
内容的提问来源于stack exchange,提问作者Boppity Bop
相关产品推荐
相关产品推荐

