Компонентное произведение всех комбинаций столбцов двух матриц
Как видно из заголовка, я хочу рассчитать компонентное произведение всех комбинаций столбцов двух матриц. Я уже нашел решение, используя 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)