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.
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.
- Först är användningen av multiply()-funktionen, som utför elementvis multiplikation av matrisen.
- För det andra är användningen av matmul()-funktionen, som utför matrisprodukten av två arrayer.
- 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]]]])