Эллипс трансляция в 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)

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