Clicky

O pacote Numpy – Python para Machine Learning

O Numpy é um dos principais pacotes da linguagem Python para machine learning e inteligência artificial. Essencialmente, ele é um pacote para operações matemáticas, possuindo assim muitas funções prontas para estas operações. Como na criação de modelos de machine learning esta é uma tarefa comum, o processo ganha velocidade e simplicidade.

Se preferir, conheça o pacote no vídeo abaixo:

Para entender o funcionamento do pacote, a melhor opção é através de suas funções. Com grande facilidade podemos utilizá-las, evidenciando a finalidade do pacote. Porém antes de utilizar as funções precisamos importar o pacote Numpy, que precisará estar instalado. Nesta página mostramos como instalar o Python através do Anaconda, que já instala também alguns pacotes, como o Numpy.

Para importar o Numpy utilizaremos o código abaixo:

import numpy  

Ou

import numpy as np

Sendo que utilizando “as np” estamos atribuindo um apelido para o pacote, que no caso será “np”. Poderíamos escrever “as didatica” e desta forma o apelido do Numpy em nosso script seria “didatica”. Este apelido é utilizado apenas para simplificar o código, e podemos atribuir o apelido que quisermos, porém é comum alguns apelidos específicos para determinados pacotes, e é uma boa prática mantermos estes padrões, como o “np” para “numpy”. Dessa forma, caso outra pessoa leia nosso script provavelmente não ficará confusa com este apelido.

numpy.array

A função “array” é uma das mais comuns do pacote, sendo que ela em si não realiza uma operação matemática, e, sim, cria uma estrutura de dados, com dados de apenas um tipo. Na prática podemos entender este array como uma tabela, onde todos os dados existentes serão do mesmo tipo, normalmente números, e podendo ter uma ou mais “colunas” na tabela.

Para utilizá-la basta inserirmos um “.” após o pacote, e então indicarmos a função.

numpy.array

ou

np.array

Vamos então criar um objeto com esta função, inserindo informações que ficarão armazenadas nele como em uma tabela.

a = np.array([1, 2, 3])
Resultado da função np.array

Assim o objeto “a” foi criado com os valores 1, 2 e 3, armazenados como números, de maneira que podemos realizar operações matemáticas com eles. Eles estão organizados em apenas uma dimensão, como se estivessem todos em uma mesma coluna de nossa tabela.

Podemos também criar objetos com mais de uma dimensão, ou seja, tabelas com mais de uma coluna.

b = np.array([[1, 2, 3], [4, 5, 6]])
Resultado da função np.array com mais de uma dimensão

Neste caso, o objeto “b” também foi criado apenas com números, porém quando inserimos dois grupos de dados separados por colchetes, e por vírgula, a função organiza cada grupo em uma dimensão (coluna) diferente. Este código “[[1, 2, 3], [4, 5, 6]]” implica em uma criação com duas dimensões. Já se retirássemos os colchetes de separação e a vírgula, ficando apenas “[1, 2, 3, 4, 5, 6]”, estes 6 números ficariam na mesma coluna, e nosso objeto teria apenas uma dimensão. Conforme inserirmos mais grupos de colchetes separados por vírgulas, mais dimensões teremos.

É interessante repararmos que na visualização deste objeto, conforme destacado na imagem abaixo, cada dimensão é apresentada em uma linha, com seus dados dentro de colchetes. Logo, em nossa analogia deste objeto com uma tabela, as colunas que estamos criando são exibidas nas linhas, sendo que cada linha seria uma coluna.

Dimensões de um array

Podemos acessar o conteúdo de cada dimensão de maneira independente, através dos índices. É como se buscássemos apenas o conteúdo da primeira coluna, ou da segunda. Para isso basta indicarmos o índice que queremos retornar, lembrando que no Python a indexação começa por 0.

print(b[0])
Dados filtrados em um array

Operações com o array

Com este objeto array do Numpy criado, podemos realizar operações com seus dados de maneira muito prática. Para isso, podemos simplesmente indicar o objeto que queremos com um ponto após ele. Na sequência, informamos a função que contém a operação desejada, e, finalizando, abrimos e fechamos parênteses. Caso queiramos passar algum parâmetro específico para o comportamento da função utilizada, indicamos nos parênteses.

Neste exemplo vamos utilizar o objeto “b” criado anteriormente, que possui os seguintes dados:

[1 2 3]
[4 5 6]
  • b.max() – retorna o maior elemento existente em “b”
  • b.min() – retorna o menor elemento existente em “b”
  • b.sum() – retorna a soma de todos os elementos existentes em “b”
  • b.prod() – retorna a multiplicação de todos os elementos existentes em “b”
  • b.mean() – retorna a média dos elementos existentes em “b”
  • b.std() – retorna o desvio padrão dos elementos existentes em “b”
Respostas de operações matemáticas com um array Numpy

Criando matrizes

Podemos utilizar também o objeto “b” como uma matriz. Neste exemplo temos uma matriz de 6 elementos, com dimensões 2 x 3, e poderíamos facilmente utilizar as funções acima para realizar operações nesta matriz.

Outra facilidade que o Numpy nos proporciona está na criação de matrizes específicas. Há muitos casos onde pode ser necessária a criação de matrizes específicas, como matrizes de zeros, de uns, quadradas com diagonal preenchida, entre outras. Vamos conferir algumas funções que nos auxiliam nestas situações.

Nos exemplos abaixo as dimensões das matrizes criadas serão definidas através dos dados inseridos nos parênteses. Por exemplo: np.zeros((4, 3)) criará uma matriz 4 x 3.

  • np.zeros() – cria uma matriz de zeros
  • np.ones() – cria uma matriz de uns
  • np.eye() – cria uma matriz n x n, com a diagonal preenchida com uns e demais elementos zero
Funções np.zeros, np.ones e np.eye

Utilizando o Numpy para machine learning

Com estes simples exemplos podemos ver a facilidade de se utilizar o Numpy, bem como sua grande utilidade para tarefas muito executadas no ramo do machine learning e inteligência artificial, através da criação e manipulação de arrays e matrizes.

Juntamente com outros pacotes, como Pandas e scikit-learn, encontramos poderosas possibilidades, que nos permitem construir sofisticados modelos, através dos mais variados algoritmos de machine learning.

Para aprender mais sobre estes pacotes, confira nosso curso de Python para Machine Learning, totalmente gratuito, com aulas simples e didáticas, focadas no aprendizado do aluno.

Temos também outros cursos, com opções gratuitas e completas, para que você possa evoluir, passando por conceitos básicos e acessíveis a todos, até conceitos avançados, que são utilizados em tecnologias de ponta. Clique aqui e confira.

cursos