Lidando com matrizes em python

Entre para nossa lista e receba conteúdos exclusivos!

matrizes com python

Hoje nós iremos aprender a lidar com operações matriciais no Python. No artigo anterior, nos preparamos para esse momento conhecendo algumas funcionalidades úteis da biblioteca numpy. Nesse artigo, iremos dar prosseguimento nesse assunto e aprender operações matriciais básicas com python. 

Em sumo, iremos conhecer as seguintes operações matriciais:

  • Soma, subtração e multiplicação por escalar de matrizes
  • Transposição de matrizes
  • Determinante de matrizes
  • Multiplicação de matrizes
  • Inversa de matrizes 

Para exemplificarmos essas operações, vamos usar a biblioteca numpy e definir duas matrizes de exemplo.

#%% Importando biblioteca e criando matrizes teste

import numpy as np


#definindo matrizes exemplo
a = np.array([[1,3,5],[5,4,6],[5,8,9]])
b = np.array([[4,8,6],[7,8,9],[10,15,16]])

print(f'Matriz A:\n{a}')
print(f'MatrizB:\n{b}')

'''Out:
    Matriz A:
    [[1 3 5]
     [5 4 6]
     [5 8 9]]
    
    MatrizB:
    [[ 4  8  6]
     [ 7  8  9]
     [10 15 16]]
'''

Matrizes em python: Soma, subtração e multiplicação por escalar de matrizes

Realizar essas operações com o numpy é uma tarefa bastante simples, e já vimos como fazer isso no guia de numpy para IA.

#%% Soma, subtraçao e multiplicaçao por escalar

#soma
print(a+b)

'''Out:
    [[ 5 11 11]
     [12 12 15]
     [15 23 25]]
'''

#subtraçao
print(a-b)

'''Out:
    [[-3 -5 -1]
     [-2 -4 -3]
     [-5 -7 -7]]
'''

#multiplicaçao por escalar (Tambem vale para divisao por escalar usando "/")
print(a*5)

'''Out:
    [[ 5 15 25]
     [25 20 30]
     [25 40 45]]
'''

Matrizes em python: Transposição de matrizes

Transpor matrizes nada mais é do que pegar as linhas de uma matriz e colocar como colunas.

#Transposiçao de matrizes

print(a.T)

'''Out:
    [[1 5 5]
     [3 4 8]
     [5 6 9]]
'''

Matrizes em python: Determinante de matrizes

Realizar o cálculo de determinante de matrizes também é uma tarefa bem simples. Lembrando que o cálculo de determinante requer uma matriz quadrada, isto é, uma matriz com o número de linhas igual ao número de colunas.

#Determinante de matrizes

print(np.linalg.det(a))

'''Out:
    42.99999999999998
'''

Matrizes em python: Multiplicação de matrizes 

A multiplicação de matrizes é confusa quando feita à mão, mas bem simples no python. Vale lembrar que, diferente da multiplicação de números, a ordem da multiplicação de matrizes importa. 

Isso significa que multiplicar uma matriz A por uma matriz B é diferente do contrário. Na verdade, em alguns casos não é possível fazer o produto da matriz B por A.

O motivo disso é que a multiplicação de matrizes é possível quando o número de colunas da primeira matriz deve ser igual ao número de linhas da segunda matriz. 

#multiplicaçao de matrizes

print(a.dot(b))

'''Out:
    [[ 75 107 113]
     [108 162 162]
     [166 239 246]]
'''

Matrizes em python: Inversa de matrizes

A inversa de uma matriz A é a matriz A-1. Essa matriz inversa é especial pois quando multiplicamos A*A-1 , o resultado é a matriz identidade, que é a matriz que tem sua diagonal principal preenchida com 1’s e os demais elementos preenchidos com 0. Vale lembrar que somente matrizes quadradas podem ter inversa.


print(np.linalg.inv(a))

'''Out:
    [[-0.27906977  0.30232558 -0.04651163]
     [-0.34883721 -0.37209302  0.44186047]
     [ 0.46511628  0.1627907  -0.25581395]]
'''

Vale lembrar que algumas matrizes quadradas simplesmente não admitem inversa. Nesses casos, podemos calcular uma “inversa aproximada”, chamada pseudo-inversa de Moore-Penrose.

print(np.linalg.pinv(a))

'''Out:
    [[-0.27906977  0.30232558 -0.04651163]
     [-0.34883721 -0.37209302  0.44186047]
     [ 0.46511628  0.1627907  -0.25581395]]
'''

Conclusão

Nesse artigo conhecemos algumas operações matriciais muito importantes. Se você ficou com alguma dúvida teórica de matrizes, pode consultar um artigo da wikipédia sobre matrizes e suas propriedades. Até a próxima!

Referências

https://pt.wikipedia.org/wiki/Matriz_(matem%C3%A1tica)

Matriz ícones criados por Freepik – Flaticon

Outros Artigos

Entre para nossa lista e receba conteúdos exclusivos!

contato@meuguru.com

CNPJ 42.269.770/0001-84

Nos siga nas redes!