考虑具有(3,3) 或 (1,3) 的ndarraysx0=np.ones((3,3))
和。我想要一个计算这两个数组行的点积的单个 einsum 命令;在这种情况下,我想在 的第一个维度上进行广播。我试过
了,但这给了y0
y0.shape
y0.shape
(1,3)
y0
np.einsum('ij,ij->i',x0,y0)
ValueError: ("Size of label '%s' for operand %d does not match previous terms.", 'i', 1)
有没有办法在 einsum 中做到这一点?看来 einsum 与 numpy 广播的交互在此应用程序中有些限制:x0 + y0
当 y0 的形状为 (1,3) 时广播第一个维度,但上面的 einsum 调用没有按我预期的那样运行。