logo

NumPy matricos daugyba Python

Matricos daugyba yra operacija, kuri sukuria vieną matricą, kaip įvestį paimant dvi matricas ir padauginant pirmosios matricos eilutes iš antrosios matricos stulpelio. Atkreipkite dėmesį, kad turime užtikrinti, kad pirmosios matricos eilučių skaičius būtų lygus antrosios matricos stulpelių skaičiui.

NumPy matricos daugyba Python

Python matricos dauginimo procesas naudojant NumPy yra žinomas kaip vektorizacija . Pagrindinis vektorizacijos tikslas yra pašalinti arba sumažinti kilpoms kurią mes aiškiai naudojome. Sumažinus „for“ kilpas iš programų, skaičiuojama greičiau. Integruotas paketas NumPy naudojamas manipuliavimui ir masyvo apdorojimui.

Tai yra trys metodai, kuriais galime atlikti numpy matricos dauginimą.

  1. Pirma, naudojama daugybos () funkcija, kuri atlieka matricos dauginimą iš elementų.
  2. Antra, naudojama funkcija matmul(), kuri atlieka dviejų masyvų matricos sandaugą.
  3. Paskutinis yra dot() funkcijos, kuri atlieka dviejų masyvų taškinę sandaugą, naudojimas.

1 pavyzdys: Elementų matricos daugyba

 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 

Aukščiau pateiktame kode

  • Mes importavome numpy su slapyvardžiu np.
  • Sukūrėme masyvą1 ir masyvą2 naudodami numpy.array() funkciją su 3 matmeniu.
  • Sukūrėme kintamąjį rezultatą ir priskyrėme grąžintą funkcijos np.multiply() reikšmę.
  • Mes perdavėme masyvą masyvas1 ir masyvas2 np.multiply().
  • Galiausiai bandėme atspausdinti rezultato vertę.

Išvestyje parodyta trimatė matrica, kurios elementai yra masyvo1 ir masyvo2 elementų daugybos rezultatas.

Išvestis:

 array([[[ 9, 16, 21], [24, 25, 24], [21, 16, 9]]]) 

2 pavyzdys: Matricos produktas

 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 

Išvestis:

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

Aukščiau pateiktame kode

  • Mes importavome numpy su slapyvardžiu np.
  • Sukūrėme masyvą1 ir masyvą2 naudodami numpy.array() funkciją su 3 matmeniu.
  • Sukūrėme kintamąjį rezultatą ir priskyrėme grąžintą funkcijos np.matmul() reikšmę.
  • Mes perdavėme masyvą masyvas1 ir masyvas2 np.matmul().
  • Galiausiai bandėme atspausdinti rezultato vertę.

Išvestyje parodyta trimatė matrica, kurios elementai yra ir masyvo1, ir masyvo2 elementų sandauga.

3 pavyzdys: taškinis produktas

Šios numpy.dot specifikacijos:

  • Kai ir a, ir b yra 1-D (vienamatis) matricos-> vidinė dviejų vektorių sandauga (be sudėtingos konjugacijos)
  • Kai ir a, ir b yra 2-D (dvimačiai) masyvai -> Matricos daugyba
  • Kai a arba b yra 0-D (taip pat žinomas kaip skaliarinis) -> Padauginkite naudodami numpy.multiply(a, b) arba a * b.
  • Kai a yra N-D masyvas, o b yra 1-D masyvas -> Sumuokite paskutinę a ir b ašį.
  • Kai a yra N-D matrica, o b yra M-D matrica, su sąlyga, kad M>=2 -> Sumuokite paskutinę a ašį ir nuo antros iki paskutinės b ašies:
    Be to, taškas(a, b)[i,j,k,m] = suma(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 

Aukščiau pateiktame kode

  • Mes importavome numpy su slapyvardžiu np.
  • Sukūrėme masyvą1 ir masyvą2 naudodami numpy.array() funkciją su 3 matmeniu.
  • Sukūrėme kintamąjį rezultatą ir priskyrėme grąžintą funkcijos np.dot() reikšmę.
  • Mes perdavėme masyvą masyvas1 ir masyvas2 np.dot().
  • Galiausiai bandėme atspausdinti rezultato vertę.

Išvestyje parodyta trimatė matrica, kurios elementai yra masyvo1 ir masyvo2 elementų taškinė sandauga.

Išvestis:

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