A mátrix szorzása olyan művelet, amely egyetlen mátrixot állít elő úgy, hogy két mátrixot vesz be bemenetként, és az első mátrix sorait megszorozza a második mátrix oszlopával. Megjegyzendő, hogy biztosítanunk kell, hogy az első mátrixban lévő sorok száma megegyezzen a második mátrix oszlopainak számával.
A Pythonban a NumPy használatával végzett mátrixszorzás folyamata az úgynevezett vektorizálás . A vektorizálás fő célja az, hogy eltávolítsa vagy csökkentse a hurkokhoz amelyeket kifejezetten használtunk. A programok „for” ciklusainak csökkentése gyorsabb számítást tesz lehetővé. A NumPy beépített csomag manipulációra és tömbfeldolgozásra szolgál.
hogyan kell tömböt rendezni java-ban
Ez a három módszer, amelyen keresztül numpy mátrixszorzást végezhetünk.
- Az első a multiply() függvény használata, amely a mátrix elemenkénti szorzását hajtja végre.
- A második a matmul() függvény használata, amely két tömb mátrixszorzatát hajtja végre.
- Végül a dot() függvény használata, amely két tömb pontszorzatát hajtja végre.
1. példa: Elemenkénti mátrixszorzás
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
A fenti kódban
- Importáltuk a numpy-t np aliasnévvel.
- Létrehoztunk egy tömb1-et és tömb2-t a numpy.array() függvény segítségével 3-as dimenzióval.
- Létrehoztunk egy változó eredményt, és hozzárendeltük az np.multiply() függvény visszaadott értékét.
- Az np.multiply()-ben a tömb1 és tömb2 tömböt is átadtuk.
- Végül megpróbáltuk kinyomtatni az eredmény értékét.
A kimenetben egy háromdimenziós mátrixot mutattunk be, amelynek elemei mind a tömb1, mind a tömb2 elemek elemenkénti szorzásának eredménye.
Kimenet:
array([[[ 9, 16, 21], [24, 25, 24], [21, 16, 9]]])
2. példa: Mátrix termék
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
Kimenet:
array([[[ 30, 24, 18], [ 84, 69, 54], [138, 114, 90]]])
A fenti kódban
- Importáltuk a numpy-t np aliasnévvel.
- Létrehoztuk a tömb1-et és a tömb2-t a numpy.array() függvény 3-as dimenziójával.
- Létrehoztunk egy változó eredményt, és hozzárendeltük az np.matmul() függvény visszaadott értékét.
- Az np.matmul() tömb1 és tömb2 tömböt is átadtuk.
- Végül megpróbáltuk kinyomtatni az eredmény értékét.
A kimenetben egy háromdimenziós mátrixot mutattunk be, amelynek elemei mind a tömb1, mind a tömb2 elemek szorzatai.
melyik évben találták fel a számítógépet
3. példa: Pontos termék
Ezek a következő specifikációk a numpy.dot számára:
- Ha a és b is egydimenziós (egydimenziós) tömb-> két vektor belső szorzata (komplex konjugáció nélkül)
- Ha a és b is 2-D (kétdimenziós) tömb -> Mátrix szorzás
- Ha a vagy b értéke 0-D (más néven skalár) -> Szorzás a numpy.multiply(a, b) vagy a * b használatával.
- Ha a egy N-D tömb és b egy 1-D tömb -> Összegezzük a és b utolsó tengelyét.
- Ha a egy N-D tömb, és b egy M-D tömb, feltéve, hogy M>=2 -> Összegezi a szorzatát a utolsó tengelye és b második tengelye között:
Továbbá pont(a, b)[i,j,k,m] = összeg(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
A fenti kódban
- Importáltuk a numpy-t np aliasnévvel.
- Létrehoztuk a tömb1-et és a tömb2-t a numpy.array() függvény 3-as dimenziójával.
- Létrehoztunk egy változó eredményt, és hozzárendeltük az np.dot() függvény visszaadott értékét.
- A tömb1 és tömb2 tömböt is átadtuk az np.dot()-ban.
- Végül megpróbáltuk kinyomtatni az eredmény értékét.
A kimenetben egy háromdimenziós mátrixot mutattunk be, amelynek elemei mind a tömb1, mind a tömb2 elemeinek pontszorzatai.
Kimenet:
array([[[[ 30, 24, 18]], [[ 84, 69, 54]], [[138, 114, 90]]]])