Manipulação de Arrays no NumPy: Indexação, Fatiamento e Transformações

O objetivo deste post é aprender a manipular os dados dentro dos arrays com precisão e eficiência. Essa etapa é essencial para extrair partes específicas das estruturas, reorganizar valores e preparar os dados para posteriores análises.

Indexação

A indexação no NumPy segue a lógica de outras linguagens de programação: o primeiro elemento de um array tem índice 0. Isso vale tanto para arrays unidimensionais quanto multidimensionais. Por exemplo, ao acessar array[0], você obtém o primeiro valor.

Já em uma matriz, array[1, 2] acessa o elemento da segunda linha e terceira coluna.

Fatiamento

O fatiamento (slicing) permite extrair subconjuntos de dados com muita praticidade.

A sintaxe array[início:fim:passo] possibilita pegar os elementos de um array ou os elementos pares com array[::2]. Em arrays 2D, o fatiamento também pode ser aplicado em linhas e colunas simultaneamente, como array[0:2, 1:3].

Modificação de valores

Você pode também modificar valores específicos usando indexação direta.

Por exemplo, array[3] = 10 substitui o quarto valor por 10. Em matrizes, a alteração funciona da mesma forma: array[1, 2] = 99 modifica o valor correspondente na segunda linha e terceira coluna.

Transformações

O NumPy oferece métodos para transformar a forma (shape) dos arrays, o que é crucial em fluxos de processamento.

Com reshape(), é possível reorganizar os dados mantendo o número total de elementos. Por exemplo, um array 1D com 6 elementos pode se transformar em uma matriz 2×3 com array.reshape(2, 3).

Outra função poderosa é o flatten(), que transforma qualquer array multidimensional em um array de uma dimensão, útil para etapas de visualização ou inserção em modelos que esperam vetores simples.Já o ravel() faz o mesmo, mas retorna uma versão “apontada” para o array original, o que pode afetar o comportamento se os dados forem alterados.

Existem as funções transpose() e T, que realizam a transposição da matriz, ou seja, trocam linhas por colunas.

Isso é muito utilizado em álgebra linear e em tratamentos de dados estruturados para modelagens estatísticas e machine learning.

Combinação

Para combinar arrays, o NumPy oferece concatenate(), vstack() e hstack(). Essas funções permitem unir arrays verticalmente ou horizontalmente, o que é útil para a junção de diferentes conjuntos de dados ou em construções de matrizes compostas.

Divisão

Já a separação de arrays pode ser feita com split(), hsplit() e vsplit(). Isso permite dividir um array grande em pedaços menores, seja por conveniência visual, processamento paralelo ou organização em lotes (batches).

Conclusão

Dominar essas técnicas é essencial para um analista ou cientista de dados. Elas são a base para realizar pré-processamentos, aplicar filtros, preparar inputs para algoritmos e visualizar dados de forma eficiente.

Você pode gostar...