Aula 09 – Python – Matriz Esparsa

More videos
Views
   

Python – Matriz Esparsa

MATRIZ ESPARSA EM PYTHON

Curso python grátis online Dicionário

Uma matriz é esparsa quando possui uma grande quantidade de elementos que valem zero, ou não estão presentes, ou ainda, não são necessários.

É implementada através de um conjunto de listas ligadas que apontam para elementos diferentes de zero, de forma que os elementos que possuem valor zero ou ausentes não são armazenados.

Matrizes esparsas têm aplicações em problemas de engenharia, física (por exemplo, o método das malhas para resolução de circuitos elétricos ou sistemas de equações lineares).

Elas são, em geral, resultantes de alguns sistemas lineares de equações, que representam alguns sistemas físicos.

Em um projeto que simule a hidrodinâmica de um rio para verificar como ocorre a expansão dos poluentes, é um caso que pode se beneficiar da aplicação de matriz esparsa.

Outro exemplo seria recomendações de filmes em serviços como o do Netflix ou produtos em site de vendas.

No caso do netflix, cada linha seria um cliente e cada coluna um filme que está no catálogo do Netflix. Em seguida marcaríamos cada elemento (i, j) dessa matriz com 1 se o cliente i assistiu o filme j e 0 caso contrário. Como o catálogo de filmes é muito grande, a maioria dos elementos dessa matriz será 0.

Sistemas esparsos são frequentes em inúmeras atividades científicas, por exemplo:

  • Geofísica
  • Astrofísica
  • Estudos de Modelos Oceânicos
  • Engenharia Química
  • Engenharia Estrutural
  • Cartografia, Simulação
  • Controle de Tráfego Aéreo
  • Estatística

O processamento de dados em sistemas assim, se beneficiam muito da representação computacional de matriz esparsa, por economizar recursos de memória e processamento, de outra forma, haveria desperdício de recursos computacionais para representar e processar dados irrelevantes.


dim = 6, 12
mat = {}
# Tuplas são imutáveis
# Cada tupla representa
# uma posição na matriz
mat[3, 7] = 2
mat[4, 6] = 9
mat[6, 3] = 8
mat[5, 4] = 3
mat[2, 9] = 4
mat[1, 0] = 7
for lin in range(dim[0]):
    for col in range(dim[1]):
        # Método get(chave, valor)
        # retorna o valor da chave
        # no dicionário ou se a chave
        # não existir, retorna o
        # segundo argumento
        if(col== dim[1] - 1):
            print(mat.get((lin, col), 0), )
        else:
            print(mat.get((lin, col), 0), end=" ")

A saída será:

0 0 0 0 0 0 0 0 0 0 0 0
7 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 4 0 0
0 0 0 0 0 0 0 2 0 0 0 0
0 0 0 0 0 0 9 0 0 0 0 0
0 0 0 0 3 0 0 0 0 0 0 0

Veja que mat[6, 3] = 8 não aparece porque tá fora da dimensão da matriz.

A dimensão da matriz é: 6 linhas( de 0 a 5 ) e 12 colunas ( de 0 a 11), portanto a coordenada mat[6, 3] tá fora da matriz, já que a linha 6 não existe.

Curta a página do Código Fluente no Facebook
https://www.facebook.com/Codigofluente-338485370069035/

Vou deixar meu link de referidos na digitalocean pra vocês.

Quem se cadastrar por esse link, ganha $100.00 dólares de crédito na digitalocean:

Digital Ocean

Esse outro link é da one.com:

One.com

Obrigado, até a próxima e bons estudos. 😉

 

Increva-se

Inscreva-se agora e receba um e-mail assim que eu publicar novo conteúdo.

Concordo em me inscrever no blog Código Fluente

Você poderá cancelar sua inscrição a qualquer momento.

(Visited 99 times, 1 visits today)
About The Author
-

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>