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

如何用一行代码实现numpy多维数组与一维数组沿公共维度相乘?

解决方案

你可以利用NumPy的广播机制实现这个需求,只需将一维数组y的形状调整为与x第一维度匹配的三维形状((m,1,1)),就能自动完成逐块的元素相乘:

import numpy as np
result = x * y[:, np.newaxis, np.newaxis]

也可以用reshape方法调整形状,效果完全一致:

result = x * y.reshape(-1, 1, 1)

原理说明

NumPy的广播机制会自动扩展形状较小的数组,使其与形状较大的数组维度兼容。把y从(m,)转为(m,1,1)后,它会在第二、第三维度上自动扩展,匹配x的(m,n,p)形状,从而实现每个x[i,:,:]块与y[i]的逐元素相乘。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 06:34:49