2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Матричное умножение и Python
Сообщение15.09.2023, 09:53 
Аватара пользователя


20/02/12
139
Всем привет! Например, опираясь на определение из учебника Беклимишева мы определяем результат матричного умножения как матрицу $C$, ячейки которой определяются таким образом:
$$c_{ij} = \sum_{k=1}^n a_{ik}b_{kj}$$

В таком случае если мы перемножаем столбец высоты $m$ на строку длины $n$, то должны получить матрицу размеров $m \times n$. В Python есть метод для матричного умножения numpy.matmul, но почему-то если ему передать столбец и строку:

Код:
import numpy as np

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

print(np.matmul(a, b))


то будет ошибка. Чтобы всё получилось, нужно вызвать другой метод numpy.outer

Подскажите почему матричное умножение в numpy работает не согласно определению матричного умножения? Или матричное умножение для столбца и строки определено только в учебнике Беклимишева? :)

 Профиль  
                  
 
 Re: Матричное умножение и Python
Сообщение15.09.2023, 10:31 


07/08/16
328
Verbery,
Вы просто явно укажите, что второй вектор это вектор строка.
Код:
import numpy as np

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

print(np.matmul(a, b))


Но да, чаще просто используют для этого outer product, так сразу понятно, чего хочет автор кода. Несмотря на то что это действительно частный случай матричного умножения.
Вообще говоря, когда я смотрел лекции по статистике на английском, там произведение $uv^T$ тоже всегда отдельно называли "outer product of vectors". Я не знаю, есть ли у этого какой-то смысл кроме удобства. В русскоязычной литературе по линейной алгебре не встречал, чтобы отдельно этот случай как-то выделялся и определялся.

 Профиль  
                  
 
 Re: Матричное умножение и Python
Сообщение15.09.2023, 16:12 
Заслуженный участник
Аватара пользователя


01/09/13
4320
Verbery в сообщении #1609222 писал(а):
нужно вызвать другой метод numpy.outer

Не нужно - это совсем другой метод.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group