logo

Множення матриць NumPy у Python

Множення матриці — це операція, яка створює єдину матрицю шляхом введення двох матриць і множення рядків першої матриці на стовпець другої матриці. Зверніть увагу, що ми повинні переконатися, що кількість рядків у першій матриці має дорівнювати кількості стовпців у другій матриці.

Множення матриць NumPy у Python

У Python процес множення матриці за допомогою NumPy відомий як векторизація . Основна мета векторизації - видалити або зменшити для петель який ми явно використовували. Зменшення циклів «for» у програмах забезпечує пришвидшення обчислень. Вбудований пакет NumPy використовується для маніпулювання та обробки масивів.

Це три методи, за допомогою яких ми можемо виконувати множення матриць numpy.

  1. По-перше, це використання функції multiply(), яка виконує поелементне множення матриці.
  2. По-друге, це використання функції matmul(), яка виконує матричний добуток двох масивів.
  3. Останнім є використання функції dot(), яка виконує скалярний добуток двох масивів.

Приклад 1: Поелементне множення матриці

 import numpy as np array1=np.array([[1,2,3],[4,5,6],[7,8,9]],ndmin=3) array2=np.array([[9,8,7],[6,5,4],[3,2,1]],ndmin=3) result=np.multiply(array1,array2) result 

У наведеному вище коді

  • Ми імпортували numpy з псевдонімом np.
  • Ми створили масив1 і масив2 за допомогою функції numpy.array() із розмірністю 3.
  • Ми створили змінну result і присвоїли повернуте значення функції np.multiply().
  • Ми передали як масив array1, так і array2 у np.multiply().
  • Нарешті, ми спробували надрукувати значення результату.

У вихідних даних показано тривимірну матрицю, елементи якої є результатом поелементного множення елементів array1 і array2.

Вихід:

 array([[[ 9, 16, 21], [24, 25, 24], [21, 16, 9]]]) 

Приклад 2: Матричний продукт

 import numpy as np array1=np.array([[1,2,3],[4,5,6],[7,8,9]],ndmin=3) array2=np.array([[9,8,7],[6,5,4],[3,2,1]],ndmin=3) result=np.matmul(array1,array2) result 

Вихід:

 array([[[ 30, 24, 18], [ 84, 69, 54], [138, 114, 90]]]) 

У наведеному вище коді

  • Ми імпортували numpy з псевдонімом np.
  • Ми створили масив1 і масив2 за допомогою функції numpy.array() із розмірністю 3.
  • Ми створили змінну result і присвоїли повернуте значення функції np.matmul().
  • Ми передали як масив array1, так і array2 у np.matmul().
  • Нарешті, ми спробували надрукувати значення результату.

У вихідних даних показано тривимірну матрицю, елементи якої є добутком елементів array1 і array2.

Приклад 3: скалярний добуток

Ось такі специфікації для numpy.dot:

  • Коли і a, і b є одновимірними (одновимірними) масивами-> скалярний добуток двох векторів (без комплексного спряження)
  • Якщо і a, і b є двовимірними (двовимірними) масивами -> Матричне множення
  • Якщо a або b дорівнює 0-D (також відомий як скаляр) -> помножити за допомогою numpy.multiply(a, b) або a * b.
  • Якщо a є N-D масивом, а b є одновимірним масивом -> Сумувати добуток по останній осі a і b.
  • Коли a є N-D масивом, а b є M-D масивом, за умови, що M>=2 -> Сумовий добуток за останньою віссю a та передостанньою віссю b:
    Крім того, dot(a, b)[i,j,k,m] = sum(a[i,j,:] * b[k,:,m])
 import numpy as np array1=np.array([[1,2,3],[4,5,6],[7,8,9]],ndmin=3) array2=np.array([[9,8,7],[6,5,4],[3,2,1]],ndmin=3) result=np.dot(array1,array2) result 

У наведеному вище коді

  • Ми імпортували numpy з псевдонімом np.
  • Ми створили масив1 і масив2 за допомогою функції numpy.array() із розмірністю 3.
  • Ми створили змінну result і присвоїли повернуте значення функції np.dot().
  • Ми передали як масив array1, так і array2 у np.dot().
  • Нарешті, ми спробували надрукувати значення результату.

У вихідних даних показано тривимірну матрицю, елементи якої є скалярним добутком елементів array1 і array2.

Вихід:

 array([[[[ 30, 24, 18]], [[ 84, 69, 54]], [[138, 114, 90]]]])