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.