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

如何用单行操作实现Numpy矩阵与一维数组的批量乘法(无循环)

Numpy实现矩阵与一维数组的批量缩放(无循环)

要实现3×2矩阵A和1×4一维数组B的批量相乘,得到4个3×2矩阵组成的4×3×2数组C,直接利用Numpy的广播机制就能一行代码搞定,完全不需要循环:

代码示例

import numpy as np

# 定义输入矩阵和数组
A = np.array([[1, 2], [3, 4], [5, 6]])  # 维度(3,2)
B = np.array([10, 20, 30, 40])           # 维度(4,)

# 单行操作得到目标数组C
C = A * B[:, np.newaxis, np.newaxis]

原理说明

通过B[:, np.newaxis, np.newaxis]将一维数组B的维度从(4,)转换为(4,1,1),Numpy的广播规则会自动将A(维度(3,2))扩展为(4,3,2),同时将B扩展为(4,3,2),两者逐元素相乘后,就得到了每个A与对应B元素相乘的结果,最终C的维度为(4,3,2),完全符合需求。

你也可以用reshape实现同样的维度调整,效果一致:

C = A * B.reshape(4, 1, 1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 19:21:09