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

如何实现向量元素与矩阵对应行的逐元素相乘运算

运算实现方案

这个场景的需求是向量与矩阵的按行逐元素匹配相乘,可通过以下几种常用方式实现:

1. NumPy 实现

利用NumPy的广播机制,先把一维向量升维为(3, 1)的列向量,再和3×n矩阵做逐元素乘法即可,底层会自动完成广播匹配,不需要手动循环。

import numpy as np

# 输入准备
vec = np.array([0, 1, 2])
# 示例为3×4矩阵,可替换为任意3×n尺寸的矩阵
mat = np.arange(12).reshape(3, 4)

# 核心运算
result = vec[:, np.newaxis] * mat
# 也可替换为 vec.reshape(-1, 1) * mat,效果完全一致

2. PyTorch 实现

和NumPy逻辑完全一致,通过给向量增加维度触发广播:

import torch

vec = torch.tensor([0, 1, 2])
mat = torch.arange(12).reshape(3, 4)

result = vec.unsqueeze(1) * mat

3. 纯Python原生实现(无第三方依赖)

如果不想引入数值计算库,直接通过列表推导式逐行处理即可:

vec = [0, 1, 2]
# 示例3×4矩阵
mat = [
    [1, 2, 3, 4],
    [5, 6, 7, 8],
    [9, 10, 11, 12]
]

result = [[v * num for num in row] for v, row in zip(vec, mat)]

小提示:广播机制的实现效率远高于手动遍历循环,处理大尺寸矩阵时优先选择NumPy/PyTorch的内置运算方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 03:06:04