2015-02-18 15 views
12

В операции numpy у меня есть два вектора, скажем, вектор A равен 4X1, вектор B равен 1X5, если я делаю AXB, он должен получить матрицу размером 4X5.Как умножить два вектора и получить матрицу?

Но я много раз пробовал, делал много видов перестановки и транспонирования, все они либо поднимали ошибку, не выровняли, либо возвращали одно значение.

Как получить выходной продукт матрицы, который я хочу?

ответ

12

Нормальное умножение матрицы работает до тех пор, пока векторы имеют правильную форму. Помните, что * в Numpy является поэлементно умножение и умножение матриц доступен с numpy.dot() (или с @ оператором, в Python 3.5)

>>> numpy.dot(numpy.array([[1], [2]]), numpy.array([[3, 4]])) 
array([[3, 4], 
     [6, 8]]) 

Это называется «внешний продукт.» Вы можете получить это, используя простые векторы, используя numpy.outer():

>>> numpy.outer(numpy.array([1, 2]), numpy.array([3, 4])) 
array([[3, 4], 
     [6, 8]]) 
Смежные вопросы