Эллипс трансляция в numpy.einsum

У меня проблемы с пониманием, почему не работает следующее:

У меня есть массивпрефактор это может быть трехмерным или шестимерным. У меня есть массивдиполи это имеет четыре измерения. Первые три измерениядиполи соответствовать последним трем измерениямпрефактор.

Поскольку я не знаю формупрефакторЯ использую многоточие для учета трех дополнительных измерений впрефактор:

numpy.einsum('...lmn,lmno->...o', prefactor, dipoles)

(В приведенном здесь примере prefactor.shape равен (1, 1, 1, 160, 160, 128) и dipoles.shape равен (160, 160, 128, 3). При выполнении я получаю ошибку:

у операнда 1 не было достаточно измерений, чтобы соответствовать вещанию, и не мог быть расширен, потому что индексы суммы Эйнштейна были указаны как в начале, так и в конце

Это работает, однако, когда я добавляю многоточие и ко второму члену:

numpy.einsum('...lmn,...lmno->...o', prefactor, dipoles)

Просто я не понимаю почему, потому что там не должно быть необходимости в многоточии. Кто-то знает, что здесь происходит?

Тот же вопрос был задан вhttp://comments.gmane.org/gmane.comp.python.numeric.general/53705 но пока нет удовлетворительного ответа.

Ответы на вопрос(1)

Ваш ответ на вопрос