现在假设我们想要:
用一种特殊的方法将A和B相乘来创建新的乘积的数组,然后可能
沿特定轴求和这个新数组,和/或
按特定顺序转置数组的轴。...('i,ij->i', A, B)
array([0,22,76])
为什么更好?...要了解输出数组的计算方法,请记住以下三个规则:
在输入数组中重复的字母意味着值沿这些轴相乘。乘积结果为输出数组的值。
在本例中,我们使用字母j两次:A和B各一次。这意味着我们将A每一行与B每列相乘。...如果我们想控制输出的样子,我们可以自己选择输出标签的顺序。例如,’ij,jk->ki’为矩阵乘法的转置。
现在,我们已经知道矩阵乘法是如何工作的。...注意,由于np.einsum(‘ij,jk->ik’, A, B)函数不构造3维数组然后求和,它只是将总和累加到2维数组中。
一些简单的操作
这就是我们开始使用einsum时需要知道的全部内容。