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

Python numpy实现B数组各元素分别乘A数组 解决广播维度报错

报错原因

numpy 广播运算要求参与运算的数组维度从尾端对齐时,对应维度的长度要么相等,要么其中一方为1。当前代码中B的形状是(2,),A的形状是(3,3),尾端维度2和3长度不匹配,无法直接广播,因此抛出维度不兼容的错误。

正确实现

要实现「B的每个元素分别乘以整个A矩阵」的需求,只需要把B的形状调整为(2,1,1),给它补充两个长度为1的维度,即可满足广播规则,运算后会得到形状为(2,3,3)的数组,正好对应2个3×3二维矩阵的预期结构。

完整可运行代码:

import numpy as np
A = np.array([[1, 2, 3],
              [4, 5, 6],
              [7, 8, 9]])
t = np.linspace(0, 1, 2)
B = 0.02109 * np.exp(-t)
# 为B新增两个长度为1的维度,适配广播规则
P = B[:, np.newaxis, np.newaxis] * A
print(P)

运行后输出结果和预期完全一致:

[[[0.02109     0.04218     0.06327    ]
  [0.08436     0.10545     0.12654    ]
  [0.14763     0.16872     0.18981    ]]

 [[0.00775858  0.01551716  0.02327574]
  [0.03103432  0.0387929   0.04655148]
  [0.05431006  0.06206864  0.06982722]]]
  • 补充说明:代码里的np.newaxis可以替换为None,写法更简洁,即B[:, None, None] * A,效果完全相同;也可以用B.reshape(-1, 1, 1)实现同样的维度调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 02:54:40