Aula 09 – Python – Matriz Esparsa

Python – Matriz Esparsa

MATRIZ ESPARSA EM PYTHON

Que fazer esse curso com certificação?

Acesse:

https://workover.com.br/python-codigo-fluente

Curso python grátis online Dicionário

Voltar para página principal do blog

Todas as aulas desse curso

Aula 08                 Aula 10

Dicas de livros relacionados:

                                   

Automatize tarefas do dia a dia com python:

Curso Python Bot

Curso Python Bot

Python – Matriz Esparsa

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.

É isso, ficamos por aqui, até a próxima. 🙂

Voltar para página principal do blog

Todas as aulas desse curso

Aula 08                 Aula 10

Se gostarem do conteúdo dêem um joinha 👍 na página do Código Fluente no
Facebook

Esse é o link do código fluente no Pinterest

Meus links de afiliados:

Hostinger

Digital Ocean

One.com

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

 

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>