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

如何实现不坍缩矩阵的类numpy.dot()逐行元素相乘?

解决方案:Numpy实现向量与矩阵按行逐元素相乘

你需要的是将向量a的每个元素对应乘以矩阵b的整行,这可以通过Numpy的广播机制高效实现,完全不需要循环,适合处理大规模数据。

核心实现方法

利用广播,先将一维向量a转换为列向量(增加一个维度),再与矩阵b做元素-wise乘法:

import numpy as np

a = np.array([-1, 2, 1])
b = np.array([[1,2,3],[4,5,6],[7,8,9]])

# 方法1:用np.newaxis扩展维度
result = a[:, np.newaxis] * b

# 方法2:用reshape扩展维度(更直观)
result = a.reshape(-1, 1) * b

# 方法3:用None替代np.newaxis(语法糖)
result = a[:, None] * b

验证结果

运行上述代码后,result的值为:

array([[-1, -2, -3],
       [ 8, 10, 12],
       [ 7,  8,  9]])

完全符合你的预期。

效率说明

这些方法都是Numpy的矢量化操作,底层由C语言实现,没有Python循环的额外开销,即使n非常大(比如上万级),也能保持高效运算。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 10:30:08