如何使用Numpy实现矩阵每一行与向量逐元素相乘
Numpy矩阵行与向量逐元素相乘解决方案
你要实现的矩阵每行与向量逐元素相乘,直接利用Numpy的广播特性即可完成,无需写循环遍历行,运算效率极高。
核心用法:
假设你的1682×36矩阵命名为matrix,1×36向量命名为vector,直接执行以下代码即可得到结果:result = matrix * vector
Numpy会自动将向量沿着矩阵的行维度广播为1682×36的形状,再与原矩阵逐元素相乘,和你给出的示例逻辑完全一致。
示例验证代码:
import numpy as np a = np.array([[1, 2], [2, 1]]) b = np.array([1, 2]) result = a * b # 输出结果为 [[1 4] # [2 2]] print(result)
注意事项:
- 如果你的向量当前形状为(36, 1)(列向量),需要先调整维度避免广播报错,调整方法可以用
vector = vector.reshape(-1)或者vector = vector.flatten(),将其转为一维数组即可正常运算。
内容的提问来源于stack exchange,提问作者ryszard eggink
相关产品推荐
相关产品推荐

