logo

NumPy matricas reizināšana Python

Matricas reizināšana ir darbība, kas veido vienu matricu, kā ievadi izmantojot divas matricas un reizinot pirmās matricas rindas ar otrās matricas kolonnu. Ņemiet vērā, ka mums ir jānodrošina, lai rindu skaits pirmajā matricā būtu vienāds ar kolonnu skaitu otrajā matricā.

NumPy matricas reizināšana Python

Python matricas reizināšanas process, izmantojot NumPy, ir pazīstams kā vektorizācija . Galvenais vektorizācijas mērķis ir noņemt vai samazināt cilpām ko mēs tieši izmantojām. Samazinot programmu 'for' cilpas, tiek nodrošināts ātrāks aprēķins. Iebūvētā pakotne NumPy tiek izmantota manipulācijām un masīvu apstrādei.

Šīs ir trīs metodes, ar kurām mēs varam veikt numpy matricas reizināšanu.

  1. Pirmkārt, tiek izmantota funkcija reizināt(), kas veic matricas reizināšanu pa elementiem.
  2. Otrkārt, tiek izmantota funkcija matmul(), kas veic divu masīvu matricas reizinājumu.
  3. Pēdējā ir funkcijas dot() izmantošana, kas veic divu masīvu punktu reizinājumu.

1. piemērs: Elementu matricas reizināšana

 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 

Iepriekš minētajā kodā

  • Mēs esam importējuši numpy ar aizstājvārdu np.
  • Mēs esam izveidojuši masīvu1 un masīvu2, izmantojot funkciju numpy.array() ar dimensiju 3.
  • Mēs esam izveidojuši mainīgo rezultātu un piešķīruši atgriezto funkciju np.multiply() vērtību.
  • Mēs esam izturējuši gan masīvu masīvs1, gan masīvs2 np.multiply().
  • Visbeidzot, mēs mēģinājām izdrukāt rezultāta vērtību.

Izvadā ir parādīta trīsdimensiju matrica, kuras elementi ir gan masīva1, gan masīva2 elementu elementu reizināšanas rezultāts.

Izvade:

ASV pilsētas nosaukums
 array([[[ 9, 16, 21], [24, 25, 24], [21, 16, 9]]]) 

2. piemērs: Matricas produkts

 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 

Izvade:

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

Iepriekš minētajā kodā

  • Mēs esam importējuši numpy ar aizstājvārdu np.
  • Mēs esam izveidojuši masīvu1 un masīvu2, izmantojot funkciju numpy.array() ar dimensiju 3.
  • Mēs esam izveidojuši mainīgo rezultātu un piešķīruši funkcijas np.matmul() atgriezto vērtību.
  • Mēs esam izturējuši gan masīvu masīvs1, gan masīvs2 np.matmul().
  • Visbeidzot, mēs mēģinājām izdrukāt rezultāta vērtību.

Izvadā ir parādīta trīsdimensiju matrica, kuras elementi ir gan masīva1, gan masīva2 elementu reizinājums.

3. piemērs: punktu produkts

Šīs ir šādas numpy.dot specifikācijas:

  • Ja gan a, gan b ir 1-D (viendimensijas) masīvi -> divu vektoru iekšējais reizinājums (bez sarežģītas konjugācijas)
  • Ja gan a, gan b ir 2-D (divdimensiju) masīvi -> Matricas reizināšana
  • Ja a vai b ir 0-D (pazīstams arī kā skalārs) -> Reiziniet, izmantojot numpy.multiply(a, b) vai a * b.
  • Ja a ir N-D masīvs un b ir 1-D masīvs -> Summējiet reizinājumu virs a un b pēdējās ass.
  • Ja a ir N-D masīvs un b ir M-D masīvs ar nosacījumu, ka M>=2 -> Summējiet reizinājumu virs a pēdējās ass un otrās līdz pēdējai b asi:
    Arī punkts(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 

Iepriekš minētajā kodā

  • Mēs esam importējuši numpy ar aizstājvārdu np.
  • Mēs esam izveidojuši masīvu1 un masīvu2, izmantojot funkciju numpy.array() ar dimensiju 3.
  • Mēs esam izveidojuši mainīgu rezultātu un piešķīruši funkcijas np.dot() atgriezto vērtību.
  • Mēs esam izturējuši gan masīvu masīvs1, gan masīvs2 np.dot().
  • Visbeidzot, mēs mēģinājām izdrukāt rezultāta vērtību.

Izvadā ir parādīta trīsdimensiju matrica, kuras elementi ir gan masīva1, gan masīva2 elementu punktu reizinājums.

Izvade:

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