Dominando o NumPy: inicializando maneiras, operações e funções do Ndarray

Publicados: 2021-01-05

Numpy é um pacote Python que permite que operações matemáticas e numéricas sejam executadas com alta eficiência e funcionalidade abstrata em dados de alta dimensão. Ao construir uma solução de Machine Learning para um caso de uso de negócios específico, torna-se muito importante transformar os dados de forma que o pré-processamento se torne fácil e os resultados sejam interpretáveis. Numpy é a biblioteca principal que possibilita a execução de todas as funções relacionadas da melhor maneira possível.

Índice

Por que NumPy?

Outras bibliotecas de ciência de dados, como Pandas, Matplotlib e Scikit-learn, são construídas sobre o Numpy devido à sua natureza de alto desempenho. Esta biblioteca oferece ndarray que é usado no lugar de listas python embutidas. A lista Python é ótima para armazenar valores, mas tem o custo de aumentar o tempo de execução, pois armazena ponteiros dos locais de memória, o que adiciona sobrecarga em termos de memória e execução.

O Numpy encontra seu uso direto no campo de processamento de imagens, onde as imagens são processadas como matrizes multidimensionais para realizar várias transformações, como desfoque, mudança de cor e detecção de objetos.

Vejamos algumas funções importantes do Numpy que todo aspirante a Data Science deve conhecer, mas antes disso:

  1. Todo o código de funções abaixo assume que a biblioteca foi importada com o alias np, ou seja, import numpy as np.
  2. O termo “array” será usado para definir ndarray após este ponto.

Diferentes maneiras de inicializar

1. Espaçamento linear

Esta função destina-se a fornecer uma matriz espaçada linear dentro do intervalo de valores. A função np.linspace(start, stop, num) onde start e stop definem o intervalo de valores e num definem o número de amostras, retorna valores uniformemente espaçados enquanto np.arange(start, stop, step) retorna valores que diferem por valores do passo.

2. Valores particulares

Em muitos casos, você pode querer inicializar uma matriz grande com valores como uns, zeros, identidade ou valores constantes. O tamanho do array é passado como uma tupla. O Numpy facilita isso por meio de diferentes funções:

    • np.zeros(size): os elementos são zero
    • np.ones(size): Elementos são uns
    • np.full(size, valor constante): Os elementos são valores constantes passados.
    • np.eye(size): Elementos diagonais são uns e os demais são zero. Esta é a matriz identidade.
    • np.empty(size): matriz vazia
    • np.random.random(size): A matriz de valores aleatórios é inicializada com o tamanho especificado.

Leia: Perguntas da entrevista Numpy

Operações Ndarray

O principal objetivo desta biblioteca é cálculos eficientes entre diferentes arrays. O Numpy suporta quase todos os tipos de operações matemáticas e manipulações aplicadas em elementos. Alguns deles estão listados abaixo (suponha que dois arrays A e B do mesmo tamanho sejam inicializados com valores aleatórios):

1. Matemática

  • np.add(A, B): Adição
  • np.subtrair(A, B): Subtração
  • np.divide(A, B): Divisão
  • np.multiply(A, B): Multiplicação
  • np.exp(A): valores exponenciais
  • np.sqrt(A): valores de raiz quadrada
  • np.sin(A), cos(A), tan(A): valores trigonométricos
  • np.log(A): valores logarítmicos
  • np.percentile(A, percentil necessário, eixo): Ao passar o valor do percentil, por exemplo, 50, a função retornará o 50º percentil do array.
  • A.dot(B): Retorna o produto escalar das matrizes
  • A == B: Comparação sábia do elemento
  • np.array_equal(A, B): Comparação inteligente de matriz
  • A.sum(): Soma de todos os elementos
  • A.min(), max(): valores mínimo e máximo
  • A.cumsum(): Soma cumulativa dos elementos do array
  • A.corrcoef(): Coeficiente de correlação

2. Manipulações

  • np.transpose(A) ou AT: Transposição da matriz
  • A.ravel(): Achata o array
  • A.reshape(new_shape): remodela o array (aqui passa o tamanho diretamente sem colocar na tupla). O novo tamanho deve ser o mesmo que
  • A.resize(size): altera o formato do array para qualquer formato e descarta outros elementos que não fazem parte deste novo formato.
  • np.concatenate((A,B), eixo=1 ou 0)
  • np.vstack((A,B)): empilhar as matrizes verticalmente (linhas)
  • np.hstack((A,B)): Pilha horizontal

Confira: Numpy vs Panda: Diferença entre

Funções Diversas

  • np.where(): Esta é uma função essencial que elimina a necessidade de instruções if-else. São necessários 3 argumentos importantes: condição, o valor se a condição for satisfeita e o valor se não for. Um exemplo simples disso pode ser quando você precisa binarizar uma coluna com base em um determinado limite.
  • np.intersect1d(): Esta função retorna a interseção de dois arrays 1-d. Isso significa que os valores comuns desses arrays são retornados por essa função. Se as matrizes passadas não forem 1-d, elas serão achatadas.
  • np.allclose(): É uma função interessante. Há situações em que você pode ter algum nível de tolerância ao comparar matrizes ou deseja descobrir matrizes semelhantes. Esta função recebe os arrays e o valor de tolerância que você deseja. Por exemplo:
    • arr1 = np.array([1,2,3,4])
    • arr2 = np.array([2,3,4,5])
    • np.allclose(arr1, arr2, 0.5): retornará False
    • np.allclose(arr1, arr2, 1): retornará True
  • argmin(), argmax() e argsort(): Como o nome sugere, essas funções retornam os índices dos respectivos nomes. A.argmin() retorna o índice mínimo do elemento, A.argmax() o oposto e A.argsort() retorna os índices do array ordenado. Essas funções podem ser úteis onde o resultado depende do índice.
  • np.clip(): Isto é usado para converter os valores dentro de um intervalo específico. Por exemplo, se uma matriz tiver valores de 1 a 30 e você quiser os valores entre 14 a 27 sem perder outros valores, essa função aumentará os valores menores que 19 a 19 e diminuirá os valores maiores que 27 a 27.

Conclusão

Existem muitas outras funções ao operar em matrizes numpy, mas essas são as funções mais usadas. As operações aplicadas nas colunas ou séries do Pandas estão realmente no ndarray, pois a série é ndarray unidimensional.

O Numpy é uma ótima ferramenta para gerar dados falsos para testar algoritmos específicos ou simular um cenário. É amplamente utilizado em aplicações de visão computacional onde a imagem é transformada em matrizes multidimensionais para realizar as operações necessárias ou em aprendizado profundo onde os pesos da rede neural são mantidos por esses ndarrays.

Se você está curioso para aprender sobre ciência de dados, confira o PG Diploma in Data Science do IIIT-B & upGrad, que é criado para profissionais que trabalham e oferece mais de 10 estudos de caso e projetos, workshops práticos práticos, orientação com especialistas do setor, 1- on-1 com mentores do setor, mais de 400 horas de aprendizado e assistência de trabalho com as principais empresas.

Prepare-se para uma carreira do futuro

DIPLOMA PG DO IIIT-B, 100+ HRS DE APRENDIZAGEM EM SALA DE AULA, 400+ HRS DE APRENDIZAGEM ONLINE E SUPORTE DE CARREIRA 360 GRAUS
Saber mais