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
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:
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. 🙂