Я пытаюсь получить скалярное произведение вектора и матрицы, используя numpy
, но получаю следующее исключение: ValueError: shapes (2,1) and (2,2) not aligned: 1 (dim 1) != 2 (dim 0)
По сути, я просто хочу умножить 2x1-матрицу (2-рядный вектор) на 2x2-матрицу, но numpy
, похоже, не поддерживает это. Я уже пытался сделать то же самое с матрицей 1x2, и это сработало, но не дало мне того результата, который я искал.
Код, который я использую:
inputs = np.matrix([[1], [0]])
weights = np.matrix([[1, 2], [3, 4]])
print(np.add(np.dot(inputs, weights), 0))
#desired result = array([1, 3])
Так что мой вопрос будет таким: Как я могу выполнить желаемую операцию с помощью numpy?
EDIT
Вот что происходит:
>>> import numpy as np
>>> a = np.matrix([[1], [0]])
>>> b = np.matrix([[1, 2], [3, 4]])
>>> a * b
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.5/dist-
packages/numpy/matrixlib/defmatrix.py", line 309, in __mul__
return N.dot(self, asmatrix(other))
ValueError: shapes (2,1) and (2,2) not aligned: 1 (dim 1) != 2 (dim 0)