Тензорное умножение с NumPy Tensordot

У меня есть тензор U, состоящий из n матриц размерности (d, k) и матрицы V размерности (k, n).

Я хотел бы умножить их так, чтобы результат возвращал матрицу измерения (d, n), в которой столбец j является результатом умножения матрицы между матрицей j из U и столбцом j из V.

Один из возможных способов получить это:

for j in range(n):
    res[:,j] = U[:,:,j] * V[:,j]

Мне интересно, если есть более быстрый подход с использованиемnumpy библиотека. В частности, я думаю оnp.tensordot() функция.

Этот небольшой фрагмент позволяет мне умножить одну матрицу на скаляр, но очевидное обобщение для вектора не возвращает то, на что я надеялся.

a = np.array(range(1, 17))
a.shape = (4,4)
b = np.array((1,2,3,4,5,6,7))
r1 = np.tensordot(b,a, axes=0)

Любое предложение?

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

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