logo

NumPy Matrix Multiplication i Python

Multiplikation av matris är en operation som producerar en enda matris genom att ta två matriser som indata och multiplicera rader i den första matrisen till kolumnen i den andra matrisen. Observera att vi måste se till att antalet rader i den första matrisen ska vara lika med antalet kolumner i den andra matrisen.

NumPy Matrix Multiplication i Python

I Python är processen för matrismultiplikation med NumPy känd som vektorisering . Huvudsyftet med vektorisering är att ta bort eller minska för slingor som vi uttryckligen använde. Genom att minska 'för'-slingor från program ger snabbare beräkning. Det inbyggda paketet NumPy används för manipulation och array-bearbetning.

Dessa är tre metoder genom vilka vi kan utföra numpy matris multiplikation.

  1. Först är användningen av multiply()-funktionen, som utför elementvis multiplikation av matrisen.
  2. För det andra är användningen av matmul()-funktionen, som utför matrisprodukten av två arrayer.
  3. Sist är användningen av dot()-funktionen, som utför dot-produkt av två arrayer.

Exempel 1: Elementvis matrismultiplikation

 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 

I ovanstående kod

  • Vi har importerat numpy med alias np.
  • Vi har skapat en array1 och array2 med numpy.array() funktion med dimension 3.
  • Vi har skapat ett variabelt resultat och tilldelat det returnerade värdet av funktionen np.multiply().
  • Vi har passerat både array array1 och array2 i np.multiply().
  • Till sist försökte vi skriva ut värdet på resultatet.

I utgången har en tredimensionell matris visats vars element är resultatet av elementvis multiplikation av både array1- och array2-element.

Produktion:

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

Exempel 2: Matrisprodukt

 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 

Produktion:

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

I ovanstående kod

  • Vi har importerat numpy med alias np.
  • Vi har skapat array1 och array2 med funktionen numpy.array() med dimension 3.
  • Vi har skapat ett variabelt resultat och tilldelat det returnerade värdet för funktionen np.matmul() .
  • Vi har passerat både array array1 och array2 i np.matmul().
  • Till sist försökte vi skriva ut värdet på resultatet.

I utgången har en tredimensionell matris visats vars element är produkten av både array1- och array2-element.

Exempel 3: Prickprodukt

Det här är följande specifikationer för numpy.dot:

  • När både a och b är 1-D (endimensionella) arrayer-> Inre produkt av två vektorer (utan komplex konjugation)
  • När både a och b är 2-D (tvådimensionella) matriser -> Matrismultiplikation
  • När antingen a eller b är 0-D (även känd som en skalär) -> Multiplicera genom att använda numpy.multiply(a, b) eller a * b.
  • När a är en N-D-matris och b är en 1-D-matris -> Summaprodukt över den sista axeln av a och b.
  • När a är en N-D-matris och b är en M-D-matris förutsatt att M>=2 -> Summaprodukt över den sista axeln i a och den näst sista axeln i b:
    Dessutom, punkt(a, b)[i,j,k,m] = summa(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 

I ovanstående kod

  • Vi har importerat numpy med alias np.
  • Vi har skapat array1 och array2 med funktionen numpy.array() med dimension 3.
  • Vi har skapat ett variabelt resultat och tilldelat det returnerade värdet för funktionen np.dot() .
  • Vi har passerat både array array1 och array2 i np.dot().
  • Till sist försökte vi skriva ut värdet på resultatet.

I utgången har en tredimensionell matris visats vars element är punktprodukten av både array1- och array2-element.

Produktion:

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