np.matmul: как умножить две матрицы в Python

Есть ровно два способа умножения матриц.

  1. Чтобы умножить матрицу на скаляр. Это называется скалярным умножением.
  2. Чтобы умножить матрицу на другую матрицу. Это известно как умножение матриц.

В этом примере мы увидим умножение матриц с использованием массивов numpy с использованием метода numpy matmul (). Итак, давайте подробно рассмотрим этот метод.

np.matmul

Чтобы умножить два массива в Python, используйте np .matmul () метод. Метод np.matmul () используется для нахождения матричного произведения двух массивов. Функция numpy matmul () принимает в качестве аргументов arr1 и arr2 и возвращает матричное произведение входных массивов.

В случае 2D-матриц — регулярная матрица товар возвращается. Если предоставленные матрицы имеют размерность больше 2, то они обрабатываются как стек матриц, находящихся в последних двух индексах, и затем транслируются соответствующим образом.

Если какой-либо из двух массивов одномерный, он перемещается в матрицу, добавляя 1 к его размерам. . После выполнения матричного умножения добавленная 1 удаляется.

Синтаксис

 numpy.matmul (arr1, arr2, out  = Нет) 

Параметры

Функция matmul () принимает не более трех параметров:

arr1 : array_like, первый входной массив

arr2 : array_like, второй входной массив

out : ndarray, это необязательный параметр.

Это n-мерный массив, в котором должны храниться выходные данные. Предположим, что arr1 имеет форму (m, k), а arr2 имеет форму (k, n); они должны иметь форму (m, n). Если этот параметр не указан или None, возвращается только что выделенный массив.

Возвращаемое значение

Matmul ( ) возвращает матричное произведение входных массивов. Скаляр создается только тогда, когда и arr1, и arr2 являются одномерными векторами.

Пример программирования

Программа для демонстрации работы метода numpy.matmul () в случае обычной двумерной матрицы:

См. Следующий код.

 #  импорт модуля numpy импортировать numpy как np # первый двумерный массив arr1arr1 = np.array ([[2, 4], [6, 8]]) print ("первый массив:") print (arr1) print ("Форма  первого массива: ", arr1.shape) # второго двумерного массива arr1arr2 = np.array ([[1, 3], [5, 7]]]" print ("второй массив:") print (arr2)  print ("Форма второго массива:", arr2.shape) # вычисление матрицы productres = np.matmul (arr1, arr2) print ("Результирующий массив:") print (res) print ("Форма результирующего массива:  ", res. shape) 

Вывод

 первый массив: [[2 4] [6 8]] Форма первого массива:  (2, 2) второй массив: [[1 3] [5 7]] Форма второго массива: (2, 2) Результирующий массив: [[22 34] [46 74]] Форма результирующего массива:  (2, 2) 

Объяснение

В приведенной выше программе мы взяли два двумерных входных массива с именами arr1 и arr2; мы отобразили результат, отображая матричное произведение обоих массивов. Результирующий массив также будет иметь форму (2,2).

Для более глубокого понимания продукт может быть показан как:

Программа для демонстрации работы метода numpy.matmul () в случае, если какая-либо из матриц является одномерной матрицей

См. следующий код.

 # импорт модуля numpy import numpy как np # первый двумерный массив arr1arr1 = np.array ([[3, 0], [0, 4]]) print ("первый массив:  ") print (arr1) print (" Форма первого массива: ", arr1.shape) # второй двумерный массив arr1arr2 = np.array ([1, 2]) print (" второй массив: ") print (  arr2) print ("Форма второго массива:", arr2.shape) # вычисление матрицы productres = np.matmul (arr1, arr2) print ("Результирующий массив:") print (res) print ("Форма результирующего массива  is: ", res.shape) 

Вывод

 первый массив: [[3 0] [0 4]]  Форма первого массива: (2, 2) Второй массив: [1 2] Форма второго массива: (2,) Результирующий массив: [3 8] Форма результирующего массива: (2,) 

Пояснение

В приведенной выше программе мы взяли двумерный входной массив с именем arr1 и еще один одномерный вектор с именем arr2. Затем мы отобразили результат, отобразив матричное произведение обоих массивов. Результирующий массив также будет иметь форму (2,).

Для более глубокого понимания продукта его можно понимать как:

Поскольку arr2 является 1-мерный вектор, он превращается в матрицу, добавляя к нему 1, и его можно отобразить как: [[11], [2,1]]. Теперь, после того, как матрица преобразования вычисляется как обычно, результат будет как [[3,3], [8, 4]], но добавленный столбец снова будет удален; следовательно, конечным результатом будет [3,8], имеющий форму (2,).

Наконец, метод Numpy matmul () в Python Tutorial завершен.

См. также

Numpy convolve ()

Numpy correlate ()

Numpy polyfit ( )

Numpy linalg det ()

Numpy arange ()

Оцените статью
nanomode.ru
Добавить комментарий