Arrays com Python + Numpy

Fernando Feltrin · Capítulo 36 de 36

Páginas do PDF

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

Livros como este

Depois do livro

Páginas que vieram com esta edição, guardadas aqui para consulta.