Pular para o conteúdo

Matrizes e vetores numéricos em Python: A solução

Dica publicada em Linux / Introdução
João Carlos abreu Junior jcaj
Hits: 66.109 Categoria: Linux Subcategoria: Introdução
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Matrizes e vetores numéricos em Python: A solução

Essa dica mostra como trabalhar de forma eficiente com matrizes numéricas em Python.

A estrutura de dados e o objetivo

Em cada posição do meu vetor preciso guardar 4 números: dois inteiros e dois reais. Vamos denominar esses 4 números como: y, x, valor1, valor2. Onde y e x são meus números inteiros e valor1 e valor2 são meus números reais.

Esse vetor deverá ser ordenado da seguinte forma:
  • Valor1: Decrescente
  • Valor2: Crescente

Ordenação

Após alocar toda a memória e preencher com os dados necessários, é preciso ordenar o vetor, como foi explicado inicialmente. Segue abaixo o código devidamente explicado:
A variável índice é um vetor que contém as posições, a variável dados deve ser impressa para que seja vista de forma ordenada.

O código completo, para teste, pode ser obtido em: Utilizando a biblioteca Numpy [Python Script]

1a. tentativa

Criar uma lista de tuplas onde cada tupla guarda os 4 números citados anteriormente e ordenar a lista com o método sort da mesma. O problema é que o Python consumia toda a memória do computador. Estranhamente o Python só consumia a memória do computador quando eu guardava variáveis na tupla, como no código abaixo:
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
Se eu guardasse os valores diretamente, como no código da figura abaixo:
Nada de errado acontecia.

Matrizes ou vetores numéricos? Numpy é a solução

A biblioteca Numpy não faz parte do instalador padrão do Python, mas pode ser obtida através do site www.numpy.scipy.org.

Essa biblioteca é altamente eficiente para se trabalhar com vetores e matrizes numéricas. Com a utilização dessa biblioteca o problema acima foi resolvido. Segue abaixo a explicação do código utilizado:

2a. tentativa

A biblioteca array do Python é melhor para se trabalhar com os vetores e matrizes numéricas. Então agora tentamos criar uma lista de arrays ao invés de uma lista de tuplas.

Armazenando variáveis, o Python novamente consumiu toda a memória do computador, segue abaixo o código utilizado:
Como na 1a. tentativa, armazenando os valores, nenhum problema ocorreu. Segue abaixo o código:

Conclusão

A biblioteca Numpy é altamente eficiente quanto ao uso de memória. Ela também se mostrou muito rápida nas operações com matriz, por exemplo: encontrar uma transposta de uma matriz, transformar matriz em vetor, entre outras coisas. Esse tutorial foi apenas uma introdução à biblioteca Numpy, mostrando como ela foi útil na resolução de um problema real, é altamente recomendado que você leia a documentação da biblioteca.

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Livro: Python para desenvolvedores

Internacionalização dos programas em Python

Linux Dash - Monitore seu servidor com muita facilidade

Como configurar o Chronyc no CentOS 7 e Red Hat 7

Copiar e colar textos do Windows para máquina virtual Debian

Lançado o fórum Mageia no Brasil

Use o Android para ajudar a encontrar curas e procurar vida extraterrestre

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.