首页 > 解决方案 > 在 numpy 中执行此操作的简单方法?

问题描述

假设我有一个 BxNxL 数组 M。换句话说,M 由 B 个 NxL 矩阵组成。另外,我有一个 LxB 列向量 Q。有没有简单的方法(没有 for 循环)将 Q 的第 i 列广播(求和)到 M 中的第 i 个矩阵?

标签: pythonnumpy

解决方案


所以你的迭代代码会是?

for i in range(...):    
    res[i,:,:] = M[i,:,:] + Q[:,i]    # NxL + L

与整个阵列

res = M + Q.T[:,None,:]     # BxNxL  + (Bx1xL)

(我写这个没有测试例子,所以可能会有错误,但基本思路应该是对的)


推荐阅读