
Sem dúvidas, a biblioteca do python numpy é essencial para qualquer tipo de atividade científica, principalmente inteligência artificial. Nesse artigo, você aprenderá o básico sobre numpy para IA.
O numpy, Junto com o pandas, matplotlib e seaborn, forma um arsenal completo para fazer qualquer tipo de análise de dados e algoritmos de aprendizado. E hoje vamos aprender as principais ferramentas dessa biblioteca.
Numpy para IA: Criando array
Os arrays numpy são bem mais vantajosos que listas do python. Os arrays são realmente tratados como matrizes, até para printá-los. Isso facilita bastante durante os cálculos. Para criar um array a partir de listas de python, basta fazer:
#importando a biblioteca
import numpy as np
#%%criando array
#criando array numpy com listas
array = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]])
print(array)
""" Out:
[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]
[13 14 15 16]]
"""
Podemos ver a dimensão do array, ou seja, a quantidade de linhas e colunas, com o atributo shape:
#printando o shape, ou seja, as dimensoes do array
print(array.shape)
#Out: (4, 4)
Ou seja, temos 4 linhas e 4 colunas.
Numpy para IA: Entendendo os eixos
Você pode navegar pelos elementos através dos eixos. O primeiro eixo tem a ver com as linhas da matriz. Já o segundo eixo, tem a ver com a coluna da matriz. Exemplo: [1,2] significa primeira linha e segunda coluna.
Já, por exemplo, [:,1] representa todas as linhas da segunda coluna, pois o ‘:’ significa todos os valores de um eixo. Seguem alguns exemplos em códigos com as saídas correspondentes:
#%% selecionado intervalos do array
#selecionando a primeira coluna array (todas as linhas e primeira coluna)
array[:,0]
#Out: array([ 1, 5, 9, 13])
#Selecionando a terceira linha do array (todas as colunas e terceira linha)
array[3,:]
#Out: array([13, 14, 15, 16])
#Selecionando os valores da linha 1 e coluna 2 e linha 1 e coluna 3
array[1,[2,3]]
#Out: array([7, 8])
Numpy para IA: Operações básicas
Com numpy é bastante fácil fazer operações básicas entre os elementos do array. Operações como fazer a soma de elemento por elemento, multiplicação, exponenciação são bem simples, vamos exemplificar com o array que criamos no tópico anterior:
#%% operaçoes com arrays
#soma
print(array + array)
''' Out:
[[ 2 4 6 8]
[10 12 14 16]
[18 20 22 24]
[26 28 30 32]]
'''
#subtraçao
print(array - array)
''' Out:
[[0 0 0 0]
[0 0 0 0]
[0 0 0 0]
[0 0 0 0]]
'''
#multiplicaçao
print(array*array)
''' Out:
[[ 1 4 9 16]
[ 25 36 49 64]
[ 81 100 121 144]
[169 196 225 256]]
'''
#exponenciaçao
print(np.power(array,4))
''' Out:
[[ 1 16 81 256]
[ 625 1296 2401 4096]
[ 6561 10000 14641 20736]
[28561 38416 50625 65536]]
'''
Também, podemos obter estatísticas, como valor máximo, mínimo, média, desvio padrão, dentre outros:
#media
print(array.mean())
#out: 8.5
#desvio padrao
print(array.std())
#out: 4.6097722286464435
#valor max e minimo
print(array.max())
print(array.min())
'''out:
16
1
'''
Numpy para IA: funções interessantes
O numpy ainda tem uma série de funções interessantes, que ajudam bastante no dia a dia. Como por exemplo:
- np.linspace: Gera valores entre um intervalo uniformemente espaçados.
- np.zeros: Cria um array somente com zeros;
- np.ones: Cria um array somente com 1’s
- np.random.random: Cria um array com valores aleatórios
- np.arange: Cria um array com valores uniformemente espaçados (A diferença entre o linspace é que nesse caso nós dizemos a quantidade de passos, e lá dizemos quantos valores queremos)
- reshape: remodela o array
Exemplificando em código:
#%% Funçoes interessantes
#obter arrays somente com zeros
print(np.zeros((3,3)))
'''Out:
[[0. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]]
'''
#obter arrays somente com 1's
print(np.ones((3,3)))
'''Out:
[[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]]
'''
#obter arrays com valores aleatorios
print(np.random.random((3,3)))
'''Out:
[[0.54182643 0.100621 0.85374169]
[0.43819031 0.73600579 0.79557194]
[0.75675942 0.8607874 0.39981957]]
'''
#obter arrays com valores uniformemente espaçados
print(np.arange(0,50,5))
'''Out:
[ 0 5 10 15 20 25 30 35 40 45]
'''
#Obter arrays de um intervalo com valores uniformemente espaçados
print(np.linspace(0,2,10))
'''out:
[0. 0.22222222 0.44444444 0.66666667 0.88888889 1.11111111
1.33333333 1.55555556 1.77777778 2. ]
'''
#remodelar array
x = np.array([1,2,3])
print(x.reshape(3,1))
'''Out:
[[1]
[2]
[3]]
'''
Conclusão
Em suma, conhecemos algumas das principais funcionalidades da biblioteca numpy para IA. Não deixe de conferir a documentação do numpy para conhecer ainda mais funcionalidades. Até a próxima!
Rreferências
https://acervolima.com/numpy-em-python-conjunto-1-introducao/