Множење матрице је операција која производи једну матрицу узимајући две матрице као улаз и множећи редове прве матрице у колону друге матрице. Имајте на уму да морамо осигурати да број редова у првој матрици буде једнак броју колона у другој матрици.
У Питхон-у је процес множења матрице помоћу НумПи-а познат као векторизација . Главни циљ векторизације је уклањање или смањење за петље које смо експлицитно користили. Смањењем 'фор' петљи из програма даје се брже рачунање. Уграђени пакет НумПи се користи за манипулацију и обраду низа.
Ово су три методе помоћу којих можемо извршити множење матрице бројева.
- Прво је употреба функције мултипли(), која врши множење матрице по елементима.
- Друго је употреба функције матмул(), која изводи матрични производ два низа.
- Последња је употреба функције дот(), која врши тачкасти производ два низа.
Пример 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
У горњем коду
- Увезли смо нумпи са псеудонимом нп.
- Направили смо низ1 и низ2 користећи функцију нумпи.арраи() са димензијом 3.
- Направили смо променљиви резултат и доделили враћену вредност функције нп.мултипли().
- Проследили смо и низ низ1 и низ2 у нп.мултипли().
- На крају, покушали смо да одштампамо вредност резултата.
У излазу је приказана тродимензионална матрица чији су елементи резултат поелементарног множења и елемената низ1 и низ2.
Излаз:
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]]])
У горњем коду
- Увезли смо нумпи са псеудонимом нп.
- Направили смо низ1 и низ2 користећи функцију нумпи.арраи() са димензијом 3.
- Направили смо променљиви резултат и доделили враћену вредност функције нп.матмул().
- Проследили смо и низ арраи1 и арраи2 у нп.матмул().
- На крају, покушали смо да одштампамо вредност резултата.
У излазу је приказана тродимензионална матрица чији су елементи производ и елемента низ1 и низ2.
Пример 3: Тачкасти производ
Ово су следеће спецификације за нумпи.дот:
- Када су и а и б 1-Д (једнодимензионални) низови-> Унутрашњи производ два вектора (без комплексне коњугације)
- Када су и а и б 2-Д (дводимензионални) низови -> множење матрице
- Када је или а или б 0-Д (такође познато као скалар) -> Помножите помоћу нумпи.мултипли(а, б) или а * б.
- Када је а Н-Д низ и б 1-Д низ -> Збирни производ преко последње осе а и б.
- Када је а Н-Д низ и б М-Д низ под условом да је М>=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.dot(array1,array2) result
У горњем коду
- Увезли смо нумпи са псеудонимом нп.
- Направили смо низ1 и низ2 користећи функцију нумпи.арраи() са димензијом 3.
- Направили смо променљиви резултат и доделили враћену вредност функције нп.дот().
- Проследили смо и низ арраи1 и арраи2 у нп.дот().
- На крају, покушали смо да одштампамо вредност резултата.
У излазу је приказана тродимензионална матрица чији су елементи тачкасти производ и елемента низ1 и низ2.
Излаз:
array([[[[ 30, 24, 18]], [[ 84, 69, 54]], [[138, 114, 90]]]])