logo

Multiplicació de matrius NumPy en Python

La multiplicació de matrius és una operació que produeix una única matriu prenent dues matrius com a entrada i multiplicant les files de la primera matriu a la columna de la segona matriu. Tingueu en compte que ens hem d'assegurar que el nombre de files de la primera matriu ha de ser igual al nombre de columnes de la segona matriu.

Multiplicació de matrius NumPy en Python

A Python, el procés de multiplicació de matrius utilitzant NumPy es coneix com vectorització . L'objectiu principal de la vectorització és eliminar o reduir per a bucles que estàvem utilitzant explícitament. En reduir els bucles 'for' dels programes, es permet un càlcul més ràpid. El paquet integrat NumPy s'utilitza per a la manipulació i el processament de matrius.

Aquests són tres mètodes mitjançant els quals podem realitzar la multiplicació de matrius numpy.

tutorial de javascript
  1. El primer és l'ús de la funció multiplicar (), que realitza la multiplicació per elements de la matriu.
  2. El segon és l'ús de la funció matmul(), que realitza el producte matricial de dues matrius.
  3. L'últim és l'ús de la funció dot(), que realitza el producte puntual de dues matrius.

Exemple 1: multiplicació de matrius per elements

 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 

En el codi anterior

  • Hem importat numpy amb el nom d'àlies np.
  • Hem creat una matriu1 i una matriu2 mitjançant la funció numpy.array() amb la dimensió 3.
  • Hem creat un resultat variable i hem assignat el valor retornat de la funció np.multiply().
  • Hem passat tant la matriu array1 com la matriu2 a np.multiply().
  • Finalment, hem intentat imprimir el valor del resultat.

A la sortida, s'ha mostrat una matriu tridimensional els elements de la qual són el resultat de la multiplicació per elements dels elements array1 i array2.

Sortida:

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

Exemple 2: producte matricial

 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 

Sortida:

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

En el codi anterior

  • Hem importat numpy amb el nom d'àlies np.
  • Hem creat array1 i array2 mitjançant la funció numpy.array() amb la dimensió 3.
  • Hem creat un resultat variable i hem assignat el valor retornat de la funció np.matmul().
  • Hem passat tant la matriu array1 com la matriu2 a np.matmul().
  • Finalment, hem intentat imprimir el valor del resultat.

A la sortida, s'ha mostrat una matriu tridimensional els elements de la qual són el producte dels elements array1 i array2.

Exemple 3: producte puntual

Aquestes són les especificacions següents per a numpy.dot:

  • Quan tant a com b són matrius 1-D (unidimensionals)-> Producte intern de dos vectors (sense conjugació complexa)
  • Quan tant a com b són matrius 2-D (bidimensionals) -> Multiplicació de matrius
  • Quan a o b és 0-D (també conegut com a escalar) -> Multiplica utilitzant numpy.multiply(a, b) o a * b.
  • Quan a és una matriu N-D i b és una matriu 1-D -> Suma el producte sobre l'últim eix de a i b.
  • Quan a és una matriu N-D i b és una matriu M-D sempre que M>=2 -> Suma el producte sobre l'últim eix de a i el penúltim eix de b:
    A més, punt (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 

En el codi anterior

  • Hem importat numpy amb el nom d'àlies np.
  • Hem creat array1 i array2 mitjançant la funció numpy.array() amb la dimensió 3.
  • Hem creat un resultat variable i hem assignat el valor retornat de la funció np.dot().
  • Hem passat tant la matriu array1 com la matriu2 a np.dot().
  • Finalment, hem intentat imprimir el valor del resultat.

A la sortida, s'ha mostrat una matriu tridimensional els elements de la qual són el producte escalat dels elements array1 i array2.

Sortida:

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