Использование np.einsum
-
ac = np.einsum('ijk,lj->ilk',a,map_y)
Бит einsum
объяснение проблемы:
Оси можно представить схематично, например, так:
a : i x j x k
map_y : l x j
output : i x l x k
Следовательно, j
выровнен и также суммирован для выхода, в то время как остальные «выбиты», что дает нам желаемый результат.
Для получения дополнительной информациисм. связанные документы.
Кроме того, поэкспериментируйте с флагом optimize
в np.einsum
, установив его как True
для использования BLAS.