我正在尝试制作一个类似的函数,但它在两个数组的第一个轴而不是最后一个轴上numpy.inner
求和。目前我正在使用:tensordot
rollaxis
def inner1(a, b):
return numpy.tensordot(numpy.rollaxis(a, 0, len(a.shape)), b, 1)
但我想知道:有没有更好的方法?也许不需要我滚动轴?
我觉得einsum
应该使这成为可能,但我不确定如何在这里使用它。
似乎需要我硬编码的维度a
以及b
当我指定下标字符串时,我在这里无法真正做到这一点,因为对输入维度没有特殊要求。
(注意:我知道在第一个轴而不是最后一个轴上求和会影响性能,但我在这里忽略了它们。)