logo

НумПи множење матрице у Питхон-у

Множење матрице је операција која производи једну матрицу узимајући две матрице као улаз и множећи редове прве матрице у колону друге матрице. Имајте на уму да морамо осигурати да број редова у првој матрици буде једнак броју колона у другој матрици.

НумПи множење матрице у Питхон-у

У Питхон-у је процес множења матрице помоћу НумПи-а познат као векторизација . Главни циљ векторизације је уклањање или смањење за петље које смо експлицитно користили. Смањењем 'фор' петљи из програма даје се брже рачунање. Уграђени пакет НумПи се користи за манипулацију и обраду низа.

Ово су три методе помоћу којих можемо извршити множење матрице бројева.

  1. Прво је употреба функције мултипли(), која врши множење матрице по елементима.
  2. Друго је употреба функције матмул(), која изводи матрични производ два низа.
  3. Последња је употреба функције дот(), која врши тачкасти производ два низа.

Пример 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]]]])