2014 dxdy logo

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

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




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


20/02/12
167
Всем привет! Например, опираясь на определение из учебника Беклимишева мы определяем результат матричного умножения как матрицу $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
4743
Verbery в сообщении #1609222 писал(а):
нужно вызвать другой метод numpy.outer

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

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

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



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

Сейчас этот форум просматривают: Geen


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

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