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.
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.
- O primeiro é o uso da função multiplicar(), que realiza a multiplicação elemento a elemento da matriz.
- O segundo é o uso da função matmul(), que executa o produto matricial de dois arrays.
- 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]]]])