Aula #9:
Arrays: funções e
métodos
Prof. Dr. Luiz Álvaro de Oliveira Júnior
Objetivos desta aula
• Conceituar array e compreender sua estrutura;
• Compreender a diferença entre arrays e listas;
• Conhecer funções e métodos da biblioteca
NumPy para trabalhar com arrays;
• Aplicar funções e métodos da biblioteca NumPy
para resolver problemas envolvendo arrays;
Sumário
Arrays 04
Métodos para arrays 06
Funções para arrays 14
Exercícios 36
Arrays
Um array é uma estrutura de dados da biblioteca NumPy, capaz
de armazenar diferentes valor em si mesma, permitindo a
execução de cálculos simples e complexos.
Se assemelham às listas, mas armazenam elementos de um
único tipo e oferecem operações matemáticas mais
eficientes que elas, pois as operações valem para todos os
elementos do array.
4
Arrays
Usamos arrays (do NumPy) se precisamos trabalhar com
números e realizar operações matemáticas simples ou
complexas de forma eficiente.
Assim como as listas, os arrays são estruturas de dados
iteráveis, ou seja, podem ter seus elementos percorridos por
alguma estrutura de repetição.
Os arrays são menos versáteis que as listas, que aceitam dados
de tipos diferentes, mas são superiores a elas no que se refere à
performance numérica.
5
Métodos para arrays
Os principais métodos para arrays são mostrados a seguir:
concatenate(): une dois ou mais arrays em um só.
Sintaxe: concatenate ((array1, array2),axis)
Exemplo:
Saída
import numpy as np [1 2 3 4]
a = [Link]([1, 2]) #1D
b = [Link]([3, 4]) #1D Observação: omitindo axis, os
c = [Link]((a, b)) arrays 1D (linha única) terão os
print(c) elementos unidos em sequência.
6
Métodos para arrays
Podemos usar o parâmetro axis para definir como a concatenação
ocorrerá.
Se axis = 0, empilha-se ao longo das linhas (verticalmente).
Saída
a = [Link]([[1, 2], [3, 4]]) [[1 2]
b = [Link]([[5, 6], [7, 8]]) [3 4]
c = [Link]((a, b), axis=0) [5 6]
print(c) [7 8]]
Para concatenar arrays 2D com axis = 0, o número de colunas deve ser igual.
7
Métodos para arrays
Se axis = 1, empilha-se ao longo das colunas (horizontalmente).
Saída
a = [Link]([[1, 2], [3, 4]]) [[1 2 5 6]
b = [Link]([[5, 6], [7, 8]]) [3 4 7 8]]
c = [Link]((a, b), axis=1)
print(c)
Para concatenar arrays 2D com axis = 1, o número de linhas deve ser igual.
8
Métodos para arrays
reshape(): muda a forma do array preservando os elementos.
Sintaxe: reshape(array, forma)
Exemplo:
Saída
import numpy as np [1 2 3 4 5 6]
a = [Link]([1, 2, 3, 4, 5, 6])
b = [Link](a,(3,2)) [[1 2]
print(a) [3 4]
print(b) [5 6]]
Observação: A forma do novo array é definida pelo número de linhas e de
colunas, entre parênteses. No exemplo, (3,2) representa 3 linhas e 2 colunas.
9
Métodos para arrays
resize(): muda a forma do array preenchendo posições vazias.
Sintaxe: resize(array, forma)
Exemplo:
Saída
import numpy as np [[1 2]
a = [Link]([[1, 2],[3, 4],[5, 6]]) [3 4]
b = [Link](a,(2,4)) [5 6]]
print(a) [[1 2 3 4]
print(b) [5 6 1 2]]
Observação: Se o array original tem menos elementos, o método resize
repete os números nas posições vazias até completar.
10
Métodos para arrays
flatten(): achata o array tornando-o unidimensional (linha única).
Sintaxe: flatten()
Exemplo:
Saída
import numpy as np
a = [Link]([[1, 2], [3, 4], [5, 6]]) [[1 2]
b = [Link]() [3 4]
print(a) [5 6]]
print(b) [1 2 3 4 5 6]
11
Métodos para arrays
split(): divide o array em partes menores.
Sintaxe: split(array, partes)
Exemplo:
import numpy as np
a = [Link]([1, 2, 3, 4, 5, 6])
b = [Link](a, 3)
print(b)
Saída
[array([1,2]), array([3, 4]), array([5, 6])]
12
Métodos para arrays
transpose(): transpõe o array (troca linhas por colunas).
Sintaxe: transpose() ou mais comumente T
Exemplo:
Saída
import numpy as np
[[1 2]
a = [Link]([[1, 2], [3, 4], [5, 6]])
[3 4]
print(a)
[5 6]]
print([Link]())
[[1 3 5]
Observação: print(a.T) também funciona!
[2 4 6]]
13
Funções para arrays
As principais funções para arrays são mostradas a seguir:
array(): cria um array a partir de uma lista de elementos informados.
Sintaxe: [Link](lista)
Exemplo:
Saída
import numpy as np [1 2]
a = [Link]([1, 2])
print(a)
Observação: os elementos são colocados entre [] e separados por vírgulas.
Para arrays 2D, os elementos de uma mesma linha ficam entre [].
14
Funções para arrays
empty(): cria um array vazios com forma definida.
Sintaxe: empty(forma)
Exemplo:
Saída
import numpy as np [[3.834e-315 0.000e+000 6.859e-310]
a = [Link]([2,3]) [3.834e-315 5.838e-317 6.859e-310]]
print(a)
Observação: a função reserva espaço na memória, mas não inicializa as
posições com zeros. O conteúdo inicial será aleatório ou residual a
depender da memória.
15
Funções para arrays
zeros(): cria um array preenchido com zeros.
Sintaxe: zeros(forma)
Exemplo:
Saída
import numpy as np [[0 0 0]
a = [Link]([2,3]) [0 0 0]]
print(a)
Observação: para 1D, informe o número de elementos, para 2D, informe os
números de linhas e de colunas, para 3D, informe três inteiros)
16
Funções para arrays
ones(): cria um array preenchido com 1.
Sintaxe: ones(forma)
Exemplo:
Saída
import numpy as np [[1 1]
a = [Link]([2,2]) [1 1]]
print(a)
Observação: para 1D, informe o número de elementos, para 2D, informe os
números de linhas e de colunas, para 3D, informe três inteiros)
17
Funções para arrays
eye(): cria uma matriz quadrada com 1 na diagonal principal.
Sintaxe: eye(ordem)
Exemplo:
Saída
import numpy as np [[1 0]
a = [Link](2) [0 1]]
print(a)
Observação: ordem se refere à ordem da matriz. É um número inteiro.
18
Funções para arrays
arange(): gera uma sequência numérica com valores espaçados.
Sintaxe: arange(início, fim, passo)
Exemplo:
Saída
import numpy as np [0 2 4 6 8]
a = [Link](0,10,2)
print(a)
Observação: início, fim e passo são números inteiros. Início é includente,
fim é excludente.
19
Funções para arrays
sum(): soma os elementos do array.
Sintaxe: sum(array)
Exemplo:
Saída
import numpy as np somaA = 10
a = [Link]([1, 2, 3, 4]) somaB = 20
b = [Link]([[2, 4],[6, 8]])
somaA = [Link](a)
print("somaA =", somaA)
print("somaB =", [Link](b))
20
Funções para arrays
max(): retorna o maior valor de um array.
Sintaxe: max(array)
Exemplo:
Saída
import numpy as np maior = 104
a = [Link]([[10, 2],[-3, 104]])
maior = [Link](a)
print("maior =", maior)
21
Funções para arrays
min(): retorna o menor valor de um array.
Sintaxe: min(array)
Exemplo:
Saída
import numpy as np menor = -3
a = [Link]([[10, 2],[-3, 104]])
menor = [Link](a)
print("menor =", menor)
22
Funções para arrays
mean(): retorna a média de um array.
Sintaxe: mean(array)
Exemplo:
Saída
import numpy as np media = 25
a = [Link]([10, 20, 30, 40])
media = [Link](a)
print("media =", media)
23
Funções para arrays
intersect1d(): retorna os termos comuns entre dois arrays.
Sintaxe: interserct1d(array)
Exemplo:
Saída
import numpy as np comum = [2 3 4]
a = [Link]([1, 2, 3, 4])
b = [Link]([[3, 4, 5],[6, 8, 2]])
comum = np.intersect1d(a, b)
print("comum = ", comum)
Observação: ordena automaticamente, exige tipos compatíveis mas não a
mesma dimensão e ignora duplicatas.
24
Funções para arrays
Saída
import numpy as np comum ab = [2.0 3.0]
a = [Link]([1, 2, 3, 4]) comum ac = ['3’]
b = [Link]([[0.5, 3.0, 5.0],[6.0, 8.0, 2.0]]) comum ad = [ ]
c = [Link](["0.5", "3", "5", "0"])
d = [Link](["dois","três","quatro"])
comum_ab = np.intersect1d(a, b)
comum_ac = np.intersect1d(a, c)
comum_ad = np.intersect1d(a, d)
print("comum ab = ", comum_ab)
print("comum ac = ", comum_ac)
print("comum ad = ", comum_ad)
Observação: os arrays a, b, c e d são de tipos diferentes, mas a, b e c são
compatíveis entre si. Por outro lado d é incompatível com a, b e c.
25
Funções para arrays
sort(): retorna uma cópia ordenada do array.
Sintaxe: sort(array)
Exemplo:
Saída
import numpy as np a = [10, 2, -3, 104]
a = [Link]([10, 2, -3, 104]) b = [-3, 2, 10, 104]
b = [Link](a)
print("a =", a)
print("b =", b)
26
Funções para arrays
column_stack(): empilha arrays lado a lado (em colunas).
Sintaxe: column_stack((array_1,array_2, ..., array_n))
Exemplo:
Saída
import numpy as np [[7.5 5.5]
[8.0 9.0]
Num_A = [Link]([7.5, 8.0, 6.2, 7.8]) [6.2 4.3]
Num_B= [Link]([5.5, 9.0, 4.3, 9.1]) [7.8 9.1]]
array = np.column_stack((Num_A, Num_B))
print(array)
27
Funções para arrays
round(): arredonda os termos do array por um número especificado
de casas decimais.
Sintaxe: round(array, casas)
Exemplo:
Saída
import numpy as np a = [3.14 2.72]
a = [Link]([3.1415, 2.7182])
print([Link](a, 2))
Observação: a função round segue as regras de arredondamento.
28
Funções para arrays
floor(): arredonda para baixo (menor inteiro mais próximo).
Sintaxe: floor(array)
Exemplo:
Saída
import numpy as np a = [3.0 2.0]
a = [Link]([3.1415, 2.7182])
print([Link](a))
29
Funções para arrays
ceil(): arredonda para cima (maior inteiro mais próximo).
Sintaxe: ceil(array)
Exemplo:
Saída
import numpy as np a = [4.0 3.0]
a = [Link]([3.1415, 2.7182])
print([Link](a))
30
Funções para arrays
trunc(): remove as casas decimais sem arredondar (truncamento).
Sintaxe: trunc(array)
Exemplo:
Saída
import numpy as np a = [3.0 2.0]
a = [Link]([3.1415, 2.7182])
print([Link](a))
31
Funções para arrays
std(): calcula o desvio padrão populacional de um array.
Sintaxe: std(array)
Exemplo:
Saída
import numpy as np desvio = 0.86
notas = [Link]([7.5, 8.0, 9.0, 6.5, 8.5])
desvio = [Link](notas)
print("Desvio:", [Link](desvio,2))
Observação: para calcular o desvio padrão amostral, coloque uma vírgula após o
array e informe ddof = 1 como parâmetro.
32
Funções para arrays
A biblioteca NumPy tem ainda um módulo chamado random que
permite a geração de números aleatórios. Nesse módulo há duas
funções bastante úteis: random e randint.
random(): gera números aleatórios entre 0 e 1.
Sintaxe: random(quantidade)
Exemplo: Saída
import numpy as np a = [0.010214856 0.614894097]
a = [Link](2)
print("a =", a)
33
Funções para arrays
randint(): gera números aleatórios em um intervalo especificado.
Sintaxe: randint(inicio, fim, quantidade)
Exemplo:
Saída
import numpy as np a = [15 8 6 12]
a = [Link](1,20,4)
print("a =", a)
Observação: início, fim e quantidade são números inteiros. Início é inclusivo, fim
é exclusivo e se não informar quantidade, apenas um número aleatório será
gerado no intervalo especificado.
34
Funções para arrays
uniform(): gera números aleatórios decimais em um intervalo.
Sintaxe: uniform(inicio, fim, quantidade)
Exemplo:
Saída
import numpy as np a = [6.21 9.48 7.73 8.25]
a = [Link](0,10,4)
print("a =", a)
Observação: início, fim e quantidade são números inteiros. Início é inclusivo, fim
é exclusivo e se não informar quantidade, apenas um número aleatório será
gerado no intervalo especificado.
35
Exercícios
36
Exercício #1
Escreva um programa em Python que solicite ao professor as notas
das turma A01/1 e A01/2 de Programação Estruturada. Em seguida
faça:
a) Junte as informações das duas turmas em um único array;
b) Ordene as notas;
c) Organize o array em duas colunas, de forma que as notas da
turma A01/1 estejam na primeira coluna e as notas da turma
A01/2 estejam na segunda coluna.
37
import numpy as np
dados = int(input("Digite o número de alunos: "))
notas1 = [Link](dados)
notas2 = [Link](dados)
print("Digite as notas da turma A01/1")
for i in range(dados):
notas1[i] = float(input(f"Digite a nota do aluno {i+1}: "))
print("Digite as notas da turma A01/2")
for i in range(dados):
notas2[i] = float(input(f"Digite a nota do aluno {i+1}: "))
notasA01 = [Link]((notas1,notas2)) #Letra (a)
print("Notas A01: ",notasA01)
ranking = [Link](notasA01) #Letra (b)
print("Ranking: ",ranking)
tabela_notas = np.column_stack((notas1,notas2)) #Letra (c)
print(tabela_notas) 38
Exercício #2
Escreva um programa em Python que calcule a média, o maior
valor, o menor valor e o desvio padrão dos dados obtidos em um
experimento realizado no laboratório. O programa deve:
• Solicitar que o usuário informe os dados individualmente;
• Calcular o maior valor e o menor valor da amostra;
• Calcular a média aritmética;
• Calcular o desvio padrão amostral;
• Utilizar funções da biblioteca numpy para resolver o problema.
39
import numpy as np
dados = int(input("Digite o número de valores: "))
x = [Link](dados)
for i in range(dados):
x[i] = float(input(f"Digite o valor {i}: "))
media = [Link](x)
maior = [Link](x)
menor = [Link](x)
desvio = [Link](x, ddof=1)
print(f"Valor mínimo = {menor:.2f}, Valor máximo = {maior:.2f}")
print(f"Média = {media:.2f}, Desvio padrão = {desvio:.2f}")
40
41