logo

Multiplicação de matriz NumPy em Python

Multiplicação de matriz é uma operação que produz uma única matriz tomando duas matrizes como entrada e multiplicando as linhas da primeira matriz pela coluna da segunda matriz. Observe que temos que garantir que o número de linhas na primeira matriz seja igual ao número de colunas na segunda matriz.

Multiplicação de matriz NumPy em Python

Em Python, o processo de multiplicação de matrizes usando NumPy é conhecido como vetorização . O principal objetivo da vetorização é remover ou reduzir o para laços que estávamos usando explicitamente. Ao reduzir os loops 'for' dos programas, proporciona-se um cálculo mais rápido. O pacote integrado NumPy é usado para manipulação e processamento de array.

Estes são três métodos através dos quais podemos realizar a multiplicação de matrizes numpy.

  1. O primeiro é o uso da função multiplicar(), que realiza a multiplicação elemento a elemento da matriz.
  2. O segundo é o uso da função matmul(), que executa o produto matricial de dois arrays.
  3. O último é o uso da função dot(), que executa o produto escalar de duas matrizes.

Exemplo 1: Multiplicação de matrizes elemento a elemento

 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 

No código acima

  • Importamos numpy com o nome alternativo np.
  • Criamos um array1 e um array2 usando a função numpy.array() com dimensão 3.
  • Criamos uma variável result e atribuímos o valor retornado da função np.multiply().
  • Passamos o array array1 e array2 em np.multiply().
  • Por último, tentamos imprimir o valor do resultado.

Na saída, foi mostrada uma matriz tridimensional cujos elementos são o resultado da multiplicação elemento a elemento dos elementos array1 e array2.

Saída:

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

Exemplo 2: Produto 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 

Saída:

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

No código acima

  • Importamos numpy com o nome alternativo np.
  • Criamos array1 e array2 usando a função numpy.array() com dimensão 3.
  • Criamos uma variável result e atribuímos o valor retornado da função np.matmul().
  • Passamos o array array1 e array2 em np.matmul().
  • Por último, tentamos imprimir o valor do resultado.

Na saída, foi mostrada uma matriz tridimensional cujos elementos são o produto dos elementos array1 e array2.

Exemplo 3: Produto escalar

Estas são as seguintes especificações para numpy.dot:

  • Quando aeb são matrizes 1-D (unidimensionais)-> Produto interno de dois vetores (sem conjugação complexa)
  • Quando aeb são matrizes 2-D (bidimensionais) -> Multiplicação de matrizes
  • Quando a ou b é 0-D (também conhecido como escalar) -> Multiplique usando numpy.multiply(a, b) ou a * b.
  • Quando a é uma matriz ND e b é uma matriz 1-D -> Soma o produto no último eixo de a e b.
  • Quando a é uma matriz ND e b é uma matriz MD, desde que M>=2 -> Soma o produto sobre o último eixo de a e o penúltimo eixo de b:
    Além disso, ponto(a, b)[i,j,k,m] = soma(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 

No código acima

  • Importamos numpy com o nome alternativo np.
  • Criamos array1 e array2 usando a função numpy.array() com dimensão 3.
  • Criamos uma variável result e atribuímos o valor retornado da função np.dot().
  • Passamos o array array1 e array2 em np.dot().
  • Por último, tentamos imprimir o valor do resultado.

Na saída, foi mostrada uma matriz tridimensional cujos elementos são o produto escalar dos elementos array1 e array2.

Saída:

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