logo

NumPy násobenie matice v Pythone

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.

NumPy násobenie matice v Pythone

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.

  1. Prvým je použitie funkcie multiply(), ktorá vykonáva násobenie matice po prvkoch.
  2. Druhým je použitie funkcie matmul(), ktorá vykonáva maticový súčin dvoch polí.
  3. 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]]]])