Компонентное произведение всех комбинаций столбцов двух матриц

Как видно из заголовка, я хочу рассчитать компонентное произведение всех комбинаций столбцов двух матриц. Я уже нашел решение, используя numpy.einsum а также numpy.hstack, Интересно, есть ли решение без hstack,

Позволять a = [a_1, a_2, ..., a_n] быть d x n матрица и b = [b_1, b_2, ..., b_m] d x m матрица. Я хочу посчитать

[a_1b_1, a_1b_2, ..., a_nb_{n-1}, a_nb_n],

где a_kb_l является компонентом мудрый продукт, то есть a_kb_l = [a_{1,k}*b{1,l}, ..., a_{d,k}*b{d,l}].T,

Мое решение заключается в следующем.np.hstack(np.einsum('...j,...l -> j...l', a, b))

Могу ли я пойти без h_stack?

0 ответов

Следующее улучшение заменяет hstack с призывом reshape. Это снижает нагрузку на память, когдаd в приоритете.

np.einsum('...j,...l -> ...jl', a, b).reshape(d, -1)

Другие вопросы по тегам