Násobenie matice je operácia, ktorá vytvorí jednu maticu tak, že sa dve matice zoberú ako vstup a vynásobia sa riadky prvej matice stĺpcom druhej matice. Všimnite si, že musíme zabezpečiť, aby sa počet riadkov v prvej matici rovnal počtu stĺpcov v druhej matici.
V Pythone je proces násobenia matíc pomocou NumPy známy ako vektorizácia . Hlavným cieľom vektorizácie je odstrániť alebo znížiť pre slučky ktoré sme explicitne používali. Znížením počtu cyklov „for“ z programov sú výpočty rýchlejšie. Na manipuláciu a spracovanie poľa sa používa vstavaný balík NumPy.
Toto sú tri metódy, pomocou ktorých môžeme vykonať násobenie numpy matice.
- Prvým je použitie funkcie multiply(), ktorá vykonáva násobenie matice po prvkoch.
- Druhým je použitie funkcie matmul(), ktorá vykonáva maticový súčin dvoch polí.
- Posledným je použitie funkcie dot(), ktorá vykonáva bodový súčin dvoch polí.
Príklad 1: Násobenie matice po prvkoch
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
Vo vyššie uvedenom kóde
rímske čísla 1 až 100
- Importovali sme numpy s aliasom np.
- Vytvorili sme pole1 a pole2 pomocou funkcie numpy.array() s dimenziou 3.
- Vytvorili sme premennú result a priradili vrátenú hodnotu funkcie np.multiply().
- V np.multiply() sme odovzdali pole pole1 aj pole2.
- Nakoniec sme sa pokúsili vytlačiť hodnotu výsledku.
Vo výstupe je zobrazená trojrozmerná matica, ktorej prvky sú výsledkom prvkového násobenia prvkov pole1 a pole2.
Výkon:
array([[[ 9, 16, 21], [24, 25, 24], [21, 16, 9]]])
Príklad 2: Matricový produkt
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
Výkon:
previesť int na reťazec v jazyku Java
array([[[ 30, 24, 18], [ 84, 69, 54], [138, 114, 90]]])
Vo vyššie uvedenom kóde
- Importovali sme numpy s aliasom np.
- Vytvorili sme pole1 a pole2 pomocou funkcie numpy.array() s dimenziou 3.
- Vytvorili sme premennú result a priradili vrátenú hodnotu funkcie np.matmul().
- V np.matmul() sme odovzdali pole pole1 aj pole2.
- Nakoniec sme sa pokúsili vytlačiť hodnotu výsledku.
Vo výstupe je zobrazená trojrozmerná matica, ktorej prvky sú súčinom prvkov pole1 a pole2.
Príklad 3: Bodový produkt
Toto sú nasledujúce špecifikácie pre numpy.dot:
- Keď a aj b sú 1-D (jednorozmerné) polia-> Vnútorný súčin dvoch vektorov (bez komplexnej konjugácie)
- Keď a aj b sú 2-D (dvojrozmerné) polia -> Maticové násobenie
- Keď a alebo b je 0-D (tiež známe ako skalárne) -> Vynásobte pomocou numpy.multiply(a, b) alebo a * b.
- Keď a je N-D pole a b je 1-D pole -> Súčet súčinu na poslednej osi aab.
- Keď a je pole N-D a b je pole M-D za predpokladu, že M>=2 -> Súčet súčinu na poslednej osi a a predposlednej osi b:
Tiež bodka(a,b)[i,j,k,m] = súčet(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
Vo vyššie uvedenom kóde
- Importovali sme numpy s aliasom np.
- Vytvorili sme pole1 a pole2 pomocou funkcie numpy.array() s dimenziou 3.
- Vytvorili sme premennú result a priradili vrátenú hodnotu funkcie np.dot().
- V np.dot() sme odovzdali pole pole1 aj pole2.
- Nakoniec sme sa pokúsili vytlačiť hodnotu výsledku.
Vo výstupe je zobrazená trojrozmerná matica, ktorej prvky sú bodovým súčinom prvkov pole1 a pole2.
previesť int na reťazec java
Výkon:
array([[[[ 30, 24, 18]], [[ 84, 69, 54]], [[138, 114, 90]]]])