Если вы имели в виду np.sum(arr1[..., None]*arr2, axis = 2)
, с ...
вместо :
, то это просто dot
:
arr3 = arr1.dot(arr2)
Это должно быть более эффективно, чем явная материализация arr1[..., None]*arr2
,но я не знаю точно, какие промежуточные звенья он выделяет.
Вы также можете выразить вычисление с помощью einsum
.Опять же, это должно быть более эффективным, чем явная материализация arr1[..., None]*arr2
, но я не знаю точно, что он выделяет.
arr3 = numpy.einsum('ijk,kl', arr1, arr2)