Множення матриці — це операція, яка створює єдину матрицю шляхом введення двох матриць і множення рядків першої матриці на стовпець другої матриці. Зверніть увагу, що ми повинні переконатися, що кількість рядків у першій матриці має дорівнювати кількості стовпців у другій матриці.
У Python процес множення матриці за допомогою NumPy відомий як векторизація . Основна мета векторизації - видалити або зменшити для петель який ми явно використовували. Зменшення циклів «for» у програмах забезпечує пришвидшення обчислень. Вбудований пакет NumPy використовується для маніпулювання та обробки масивів.
Це три методи, за допомогою яких ми можемо виконувати множення матриць numpy.
- По-перше, це використання функції multiply(), яка виконує поелементне множення матриці.
- По-друге, це використання функції matmul(), яка виконує матричний добуток двох масивів.
- Останнім є використання функції 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]]]])