Coletânea Python do ZERO às Redes Neurais Artificiais
Trabalhando com Arrays
Em Python, assim como em outras linguagens de programação
de alto nível, temos algumas estruturas de dados específicas quando queremos guardar mais de um dado/valor atribuído a uma variável/objeto.
Para aplicações comuns temos tipos de dados como listas,
tuplas, sets, dicionários, etc... cada um com suas particularidades tanto na forma sintática quanto da maneira como tais dados são indexados e lidos por nosso interpretador.
No âmbito da computação científica uma prática comum é a do
uso de arrays, estruturas de dados onde podemos guardar dados numéricos dispostos em forma de vetores e/ou matrizes, sendo assim ampliada a gama de aplicações de funções sobre estes tipos de dados em particular.
A partir de uma representação visual fica um tanto quanto mais
fácil entendermos de fato o que seriam dados em forma vetorial/matricial.
Dos exemplos acima, à esquerda temos uma array unidimensional, estrutura de dados composta por campos preenchidos por dados numéricos dispostos ao longo de uma simples linha. Cada elemento da mesma possui um índice interno ao qual podemos fazer uso para alguns tipos de funções básicas de exploração e tratamento dos dados.
Da mesma forma, ao meio temos uma representação de uma array bidimensional, onde os dados agora estão dispostos em linhas e colunas, o que nos amplia um pouco a gama de possibilidades sobre tais dados, haja visto que em muitas áreas trabalhamos diariamente com dados neste formato, comumente associado a tabelas Excel.
Por fim, à direita, temos a representação visual de uma array multidimensional, com dados dispostos em linhas, colunas e camadas, algo equivalente ao mapeamento de pixels e voxels em uma imagem, onde inúmeras dimensões podem ser adicionadas aumentando exponencialmente a complexidade de tais dados assim como as possibilidades sobre os mesmos.
Para computação científica, no que diz respeito ao tratamento de dados desta complexidade, a biblioteca Numpy nos oferecerá uma extensa biblioteca de funções onde a aplicação de conversões, funções, equações e outras explorações será feita de forma fácil e intuitiva, algo que quando realizado de forma manual pode ser bem maçante e complexo.
Desde a simples criação de uma estrutura de dados para
armazenamento de dados/valores em forma matricial até aplicações mais avançadas, como o uso de matrizes como camadas de neurônios em redes neurais convolucionais*¹ (arquiteturas de rede neural dedicadas a conversão de dados a partir de mapeamento de imagens), tenha em mente que o uso de arrays do tipo Numpy facilitarão, e muito nossa vida.
*¹ Para ver tal aplicação, veja meu artigo “Detecção de doenças pulmonares a partir de radiografias de tórax, via rede neural artificial convolucional”, disponível em
https://medium.com/@fernando2rad/rede-neural-artificial-
convolucional-fernando-b-feltrin-6620064d6b71