首页 > 解决方案 > 将 numpy 3 dim 数组乘以 2d 数组

问题描述

我有两个矩阵,m0.shape = [10, 3, 3]m1.shape = [10, 3]。我想要做的是使用循环以这种方式完成:

m0 = np.zeros((10, 3, 3))
m1 = np.zeros((10, 3))
a = np.zeros((10, 3))
for i in range(10):
    a += m1 @ m0[i]

问题是:我可以通过使用内置的 numpy 操作以某种方式获得相同的结果吗?

标签: pythonarraysnumpylinear-algebra

解决方案


我认为你有两个选择:

import numpy as np

np.sum(m1 @ m0, axis=0)

或使用numpy.einsum

np.einsum('ij,kjl->il', m1, m0)

推荐阅读