
Матричное умножение — одна из ключевых операций в линейной алгебре и многих приложениях, таких как машинное обучение. В NumPy эта операция осуществляется с помощью функции np.dot().
Синтаксис функции np.dot() следующий:
numpy.dot(a, b, out=None)a, b: Входные массивы. Это могут быть одномерные или двумерные массивы (векторы или матрицы).out: Необязательный аргумент. Если предоставлен, он должен иметь форму (a.shape[0], b.shape[1]) и будет использоваться для размещения результата.При умножении двух векторов np.dot() возвращает скалярное произведение:
import numpy as np
a = np.array([1, 2])
b = np.array([3, 4])
result = np.dot(a, b)
print(result) # 11, так как 1*3 + 2*4 = 11A = np.array([[1, 2], [3, 4]])
v = np.array([0, 1])
result = np.dot(A, v)
print(result) # [2, 4], так как [1*0 + 2*1, 3*0 + 4*1]A = np.array([[1, 2], [3, 4]])
B = np.array([[0, 1], [2, 3]])
result = np.dot(A, B)
print(result)
# [[4, 7], так как [[1*0 + 2*2, 1*1 + 2*3],
# [8, 15]] [3*0 + 4*2, 3*1 + 4*3]]Матричное умножение обладает рядом особенностей, которые следует учитывать при работе с функцией np.dot():
Одной из наиболее важных особенностей матричного умножения является необходимость совместимости размеров матриц. Если у вас есть две матрицы A и B, где A имеет размерность (m, n) и B имеет размерность (p, q), тогда n должно быть равно p для того, чтобы умножение было возможным.
Пример:
A = np.array([[1, 2, 3], [4, 5, 6]])
B = np.array([[7, 8], [9, 10], [11, 12]])
result = np.dot(A, B)Матрица A имеет размерность (2, 3), а матрица B — (3, 2). Таким образом, они совместимы для умножения.
Матричное умножение не является коммутативным. Это означает, что умножение A на B не обязательно дает тот же результат, что и умножение B на A.
Пример:
A = np.array([[1, 2], [3, 4]])
B = np.array([[0, 1], [2, 3]])
result1 = np.dot(A, B)
result2 = np.dot(B, A)
print(result1)
print(result2)Вы увидите, что result1 и result2 различны.
При умножении одномерных массивов (векторов) np.dot() возвращает скалярное произведение. Это не то же самое, что матричное умножение.
Пример:
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
result = np.dot(a, b)
print(result) # 32Эти особенности и ограничения важны для понимания и эффективного использования матричного умножения в NumPy.
Функция np.dot() в NumPy не просто теоретический инструмент. Она имеет множество практических применений в различных областях науки и инженерии.
np.dot().np.dot() может быть использована для реализации таких алгоритмов.Функция np.dot() в NumPy позволяет выполнять матричное умножение с легкостью и эффективностью. Это ключевой инструмент в вашем арсенале при работе с линейной алгеброй и аналитическими задачами в Python. Всегда убедитесь, что формы ваших массивов совместимы, чтобы избежать ошибок при умножении.
Содержание: