numpy.matmul()
Функция numpy.matmul() выполняет матричное умножение двух массивов. Для двумерных массивов это обычное произведение матриц, для одномерных — скалярное произведение векторов.
Сигнатура
numpy.matmul(x1, x2, /, out=None, *, casting='same_kind', order='K', dtype=None)
Параметры
x1,x2— входные массивы. Должны соответствовать правилам матричного умножения.out— массив для записи результата (опционально).dtype— тип данных результата.
Возвращает
ndarray — результат матричного произведения. Скаляр, если оба входа одномерные.
Пример 1. Умножение двух матриц
import numpy as np
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
print(np.matmul(A, B))
[[19 22]
[43 50]]
Пример 2. Оператор @
import numpy as np
A = np.array([[1, 0], [0, 1]])
B = np.array([[2, 3], [4, 5]])
print(A @ B)
[[2 3]
[4 5]]
Оператор @ эквивалентен np.matmul.
Пример 3. Скалярное произведение векторов
import numpy as np
v1 = np.array([1, 2, 3])
v2 = np.array([4, 5, 6])
print(np.matmul(v1, v2))
32
Пример 4. Поворот точки на плоскости
import numpy as np
angle = np.pi / 2 # 90°
R = np.array([[np.cos(angle), -np.sin(angle)],
[np.sin(angle), np.cos(angle)]])
point = np.array([1, 0])
print(np.round(np.matmul(R, point), 2))
[0. 1.]
Точка (1, 0) повернулась в (0, 1).
Пример 5. Стэк матриц
import numpy as np
A = np.ones((2, 3, 4))
B = np.ones((2, 4, 5))
print(np.matmul(A, B).shape)
(2, 3, 5)
matmul поддерживает батчи: последние два измерения умножаются, первое транслируется.
См. также
Примечание
Лицензия и источники
Техническое описание функции адаптировано из официальной документации NumPy (https://numpy.org/doc/stable/), BSD-3-Clause License. Примеры и пояснения — © AlashEd Wiki.