Имея два ndarrays, массив d
с формой (3,10,10) и массив e
с формой (3,10), как рассчитать скалярное произведение первой матрицы 10x10 из d
ипервая строка e
, вторая матрица 10x10 d
и вторая строка e
и т. д.
Например, имеющие следующие два массива:
d = np.array([np.diag([1,1,1,1,1,1,1,1,1,1]),
np.diag([2,2,2,2,2,2,2,2,2,2]),
np.diag([3,3,3,3,3,3,3,3,3,3])])
e = np.arange(30).reshape((3,10))
Как рассчитать массив 3x10:
array([[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
[20, 22, 24, 26, 28, 30, 32, 34, 36, 38],
[60, 63, 66, 69, 72, 75, 78, 81, 84, 87]])
Я пытался использовать np.dot
и np.tensordot
, а также перед этим сделать транспонирование и добавление новой оси в e
, но я не могу понятьузнать, как решить эту проблему.