Какая логика стоит за этим умножением матриц? - PullRequest
1 голос
/ 22 июня 2019

Я пытаюсь умножить эти одномерные матрицы (или векторы) друг на друга следующим образом:

a = np.array([1,2,3]).reshape(1,3)

b = np.array([4,5,6]).reshape(1,3)

c = np.dot(a,b)

print(c) выводит ab error как «фигуры (1,3) и (1,3) не выровнены», которые являются правильными согласно законам умножения матриц.

Но когда я делаю c = a*b и print(c), я получаю матрицу 1 x 3 - array([[ 4, 10, 18]]).

мой вопрос, как умножение матрицы 1 X 3 * 1 X 3 дает матрицу 1 X 3? Столбцы первой матрицы должны равняться строкам второй. Не правда ли?

Более того, было бы замечательно, если бы кто-нибудь из вас мог пролить дополнительную информацию о том, чем скалярное произведение двух матриц форм (i, j) отличается от его умножения a*b?

1 Ответ

1 голос
/ 22 июня 2019

Метод dot выполняет матричное умножение, как и следовало ожидать.Оператор * берет две матрицы одинаковых размеров и умножает их соответствующие элементы, таким образом, получая результат одинаковых размеров.

...