Наружный продукт с Numpy и Ndarray - PullRequest
0 голосов
/ 01 октября 2018

В одном из моих кодов я использую numpy для вычислений матриц.

В какой-то момент мне нужно сделать внешнее произведение между 2 векторами, чтобы получить матрицу.Вот где я застрял.Сначала я попробовал numpy.dot или другой матричный продукт, но когда оба аргумента являются 1D, он делает только скалярный продукт, а не то, что я хочу.Затем я обнаружил, что numpy.outer делает именно то, что я хочу: столбец * строка.

Дело в том, что мои векторы не являются массивами.Поскольку они являются результатом операции numpy.dot, они являются объектами ndarray.Но у ndarrays нет внешнего метода.Я перепробовал все, что нашел в Интернете, чтобы преобразовать мои ndarrays в простые массивы.Но ничего не работает, у меня все еще есть ndarray и одна и та же ошибка атрибута снова и снова.

Теперь я не знаю, что попробовать, поэтому я хотел проверить, знаете ли вы другой способ сделать этот внешний продукт,прежде чем я сделаю некоторые неприятные вещи, подразумевающие клонирование значений в массиве.

Большое спасибо за вашу помощь.

1 Ответ

0 голосов
/ 01 октября 2018

outer - это не метод какого-либо класса, это просто старая функция, найденная в модуле numpy.

Вот пример того, как его использовать:

import numpy
x = numpy.array([1, 2, 3])
y = numpy.array([4, 5, 6])
# x.__class__ and y.__class__ are both 'numpy.ndarray'

outer_product = numpy.outer(x, y)
# outer_product has the value:
# array([[ 4,  5,  6],
#        [ 8, 10, 12],
#        [12, 15, 18]])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...