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.