Arrays com Python + Numpy
Conclusão
Apenas fazendo um encerramento, vimos neste pequeno livro algumas das possibilidades de operações com arrays por meio da biblioteca Numpy. A linguagem Python é muito versátil no que diz respeito tanto da sua flexibilidade quando usada apenas com recursos nativos, quanto quando usada com bibliotecas desenvolvidas pela comunidade com seus respectivos recursos adicionais.
Dependendo muito do nicho que você faz uso da linguagem Python, certamente existirão bibliotecas específicas para tal propósito, aumentando ainda mais o número de recursos oferecidos e passíveis de implementação.
Espero que você tenha entendido por meio dos exemplos apresentados neste livro, as principais funcionalidades que a biblioteca Numpy nos oferece. Como dito nos capítulos iniciais, existe uma enorme gama de funções predefinidas nessa biblioteca, aqui pelas limitações de um livro focamos apenas nas principais, nas mais comumente utilizadas.
Muito obrigado pela aquisição deste material, espero que de fato ele tenha contribuído de alguma forma para seu aprendizado. Caso sim, considere adquirir outro de meus livros, todos possuem a mesma didática e abordam temas desde o básico de Python até o que existe de mais avançado dentro de Redes Neurais Artificiais aplicadas em Inteligência Artificial.
Novamente, muito obrigado, lhe desejo sucesso em suas
idealizações.
Códigos Completos
Instalação das dependências
pip install numpy
Importando a biblioteca numpy
import numpy as np
Criando uma array numpy
data = np.array ([ 2 , 4 , 6 , 8 , 10 ])
print ( data )
print ( type ( data ))
print ( data.shape )
Criando automaticamente uma array numpy com dados ordenados.
data = np.arange ( 15 )
print ( data )
Criando automaticamente uma array numpy com dados aleatórios (float entre 0 e 1)
data = np.random.rand ( 15 )
print ( data )
Criando uma array numpy com dados aleatórios (int entre 0 e o valor especificado).
data = np.random.randint ( 10 , size = 10 ) # números de 0 a 10, size define quantos elementos serão gerados
print ( data )
Criando uma array numpy com dados aleatórios (float entre 0 e 1) data = np.random.random (( 2 , 2 ))
print ( data )
Criando uma array numpy composta de zeros
data = np.zeros (( 3 , 4 ))
# 3 linhas e 4 colunas
print ( data )
Criando uma array numpy composta de números um
data = np.ones (( 3 , 4 ))
# 3 linhas e 4 colunas
print ( data )
Criando uma array numpy com valores vazios.
data = np.empty (( 3 , 4 ))
# haverá um valor, representado em notação científica, algo muito próximo ao zero absoluto.
print ( data )
Criando uma array numpy de números negativos.
data = np.arange ( 10 ) * -1
print ( data )
Criando uma array numpy unidimensional
data = np.random.randint ( 5 , size = 10 )
# números de 0 a 5, size define quantos elementos serão gerados
print ( data )
print ( data.shape )
Criando uma array numpy bidimensional
data2 = np.random.randint ( 5 , size = ( 3 , 4 )) # números de 0 a 5, distribuidos em 3 linhas e 4 colunas
print ( data2 )
print ( data2.shape )
Criando uma array numpy tridimensional
data3 = np.random.randint ( 5 , size = ( 5 , 3 , 4 )) # números de 0 a 5, 5 camadas cada uma com 3 linhas e 4 colunas
print ( data3 )
print ( data3.shape )
Criando uma array numpy a partir de elementos de uma lista
data4 = np.array ([[ 1 , 2 , 3 , 4 ], [ 1 , 3 , 5 , 7 ]])
print ( data4 )
Verificando o tipo de dado de uma array
print ( type ( data3 ))
print ( data3.dtype )
Verificando o tamanho de uma array
data3 = np.random.randint ( 5 , size = ( 5 , 3 , 4 ))
print ( data3.ndim )
# número de dimensões
print ( data3.shape )
# formato de cada dimensão
print ( data3.size )
# tamanho total da matriz
Verificando o tamanho em bytes de cada item e de toda uma array
print ( f 'Cada elemento possui { data3.itemsize } bytes' )
print ( f 'Toda a matriz possui { data3.nbytes } bytes' )
Consultando o elemento de maior valor em uma array
data = np.arange ( 15 )
print ( data )
print ( data. max ())
Consultando um elemento através de seu índice (unidimensional)
data = np.arange ( 15 )
print ( data )
print ( data [ 8 ])
data
print ( data )
print ( data [-5 ])
# 5º elemento a contar do fim para o começo
Consultando um elemento através de seu índice (multidimensional)
data2 = np.random.randint ( 5 , size = ( 3 , 4 ))
print ( data2 )
print ( data2 [ 0 , 2 ])
# linha 0, coluna 2 (lembrando que o índice para coluna também começa em 0, 0-1-2-3)
Consultando um intervalo de elementos em uma array
data
print ( data )
print ( data [: 5 ])
# apenas os 5 primeiros
print ( data [ 3 :])
# do terceiro elemento em diante (elemento, e não índice)
print ( data [ 4 : 8 ])
# do quarto elemento até o oitavo (4º, 5º, 6º 7º e 8º elemento)
print ( data [:: 2 ])
# de dois em dois elementos
print ( data [ 3 ::])
# pula os 3 primeiros elementos e imprime o resto
Modificando dados/valores manualmente por meio de seu índice
data2
print ( data2 )
data2 [ 0 , 0 ] = 10
# elemento situado na posição 0x0 do índice passará a ter o valor atribuído 10
print ( data2 )
Inserindo elementos diferentes de int
data2
data2 [ 1 , 1 ] = 6.82945
# mesmo declarado como float será convertido em int
print ( data2 )
Definindo manualmente o tipo de dados de uma array
data2 = np.array ([ 8 , -3 , 5 , 9 ], dtype = 'float' ) # todos elementos serão convertidos para float
print ( data2 )
print ( type ( data2 [ 0 ]))
Criando uma array numpy de intervalos igualmente distribuídos
data = np.linspace ( 0 , 1 , 7 )
# 7 números, gerados de 0 a 1, com intervalo igual entre cada número gerado
print ( data )
Criando uma array numpy com formato definido manualmente
data5 = np.arange ( 8 )
print ( data5 )
data5 = data5.reshape ( 2 , 4 )
# a multiplicação dessas dimensões deve ser o número de elementos. ex 2 x 4 = 8
print ( data5 )
Criando uma array numpy com tamanho predefinido em variável
tamanho = 10
data6 = np.random.permutation ( tamanho ) # matriz de 10 elementos conforme variável tamanho define
print ( data6 )
Operadores lógicos em arrays numpy (todos elementos)
data7 = np.arange ( 10 )
print ( data7 )
print ( data7 > 3 )
# irá verificar cada elemento da matriz, retornando true para os que forem maior que 3 e false para os que forem menor.
Operadores lógicos em arrays numpy (elemento específico)
data7 = np.arange ( 10 )
print ( data7 )
print ( data7 [ 4 ] > 5 )
# o elemento e é maior que 5?
Operadores aritméticos em arrays numpy
data8 = [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ] print ( data8 )
data8 = np.array ( data8 )
# após convertido para array o operador + sempre fará a soma
print ( data8 + 10 )
Criando uma matriz diagonal
data9 = np.diag (( 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 )) # os elementos serão distribuídos em uma coluna diagonal
print ( data9 )
Criando padrões duplicados
data10 = np.tile ( np.array ([[ 9 , 4 ], [ 3 , 7 ]]), 4 ) # 9, 4, elementos da primeira linha, 3, 7 da segunda, duplicados 4 vezes na mesma linha
print ( data10 )
data10 = np.tile ( np.array ([[ 9 , 4 ], [ 3 , 7 ]]), ( 2 , 2 )) # mesmo exemplo que o anterior, mas duplicados linha e coluna
print ( data10 )
Somando um valor a cada elemento de uma array
data11 = np.arange ( 0 , 15 )
print ( data11 )
data11 = np.arange ( 0 , 15 ) + 1
# irá somar 1 a cada elemento
print ( data11 )
data11 = np.arange ( 0 , 30 , 3 ) + 3
# somando 3 ao valor de cada elemento, de 3 em 3 elementos
print ( data11 )
Realizando a soma de arrays
d1 = np.array ([ 3 , 6 , 9 , 12 , 15 ]) d2 = np.array ([ 1 , 2 , 3 , 4 , 5 ]) d3 = d1 + d2
print ( d3 )
Realizando a subtração de arrays
d1 = np.array ([ 3 , 6 , 9 , 12 , 15 ]) d2 = np.array ([ 1 , 2 , 3 , 4 , 5 ])
d3 = d1 - d2
print ( d3 )
Realizando a divisão de arrays
d1 = np.array ([ 3 , 6 , 9 , 12 , 15 ]) d2 = np.array ([ 1 , 2 , 3 , 4 , 5 ])
d3 = d1 / d2
print ( d3 )
Realizando a multiplicação de arrays
d1 = np.array ([ 3 , 6 , 9 , 12 , 15 , 18 , 21 , 24 , 27 , 30 ]) d2 = np.array ([ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 ])
d3 = d1 * d2
print ( d3 )
Operações lógicas entre arrays
d1 = np.array ([ 3 , 6 , 9 , 12 , 15 , 18 , 21 ]) d2 = np.array ([ 1 , 2 , 3 , 4 , 5 , 20 , 25 ])
d3 = d2 > d1
# os elementos de d2 são maiores do que os de d1?
print ( d3 )
Transposição de arrays
arr1 = np.array ([[ 1 , 2 , 3 ], [ 4 , 5 , 6 ]])
print ( arr1 )
print ( arr1.shape )
arr1_transposta = arr1.transpose ()
# realizará a conversão de linhas para colunas e vice-versa
print ( arr1_transposta )
print ( arr1_transposta.shape )
Salvando uma array no disco local
data = np.array ([ 3 , 6 , 9 , 12 , 15 ])
np.save ( 'minha_array' , data )
# irá gerar um arquivo com extensão .npy
Carregando uma array do disco local
np.load ( 'minha_array.npy' )
Python do ZERO à Programação Orientada a Objetos
Programação Orientada a Objetos com Python
Ciência de Dados e Aprendizado de Máquina
Inteligência Artificial com Python
Redes Neurais Artificiais com Python
Análise Financeira com Python
Arrays com Python + Numpy
Tópicos Avançados em Python
Visão Computacional em Python
Qualquer errata, dúvida, crítica ou sugestão, fique à vontade para entrar em contato diretamente através do e-mail fernando2rad@gmail.com.
OceanofPDF.com
Você terminou Arrays com Python + Numpy
Fernando Feltrin