Numpy 3d 数组矩阵乘法函数

2024-03-12

假设我有一个 ndarray,形状为 (m,n,n) 的 W 和维度为 (m,n) 的向量 C。我需要按以下方式将这两个相乘

result = np.empty(m,n)
for i in range(m):
    result[i] = W[i] @ C[i]

如何以矢量化方式做到这一点而不需要循环?


因为,您需要保留第一个轴W and C对齐,同时通过矩阵乘法失去它们的最后一个轴,我建议使用np.einsum http://docs.scipy.org/doc/numpy-1.10.0/reference/generated/numpy.einsum.html对于一种非常有效的方法,就像这样 -

np.einsum('ijk,ik->ij',W,C)

np.tensordot or np.dot没有保持轴对齐的功能,这就是np.einsum改进。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Numpy 3d 数组矩阵乘法函数 的相关文章

随机推荐