Biblioteca de dados NumPy
NumPy — uma biblioteca de código aberto para a linguagem de programação Python, que implementa um grande número de operações para trabalhar com vetores, matrizes e arrays.
Algoritmos matemáticos implementados em linguagens interpretadas (por exemplo, Python) costumam ser muito mais lentos do que aqueles implementados em linguagens compiladas (por exemplo, Fortran, C, Java). A biblioteca NumPy fornece implementações de algoritmos computacionais (na forma de funções e operadores) otimizados para trabalhar com matrizes multidimensionais.
Como resultado, qualquer algoritmo que possa ser expresso como uma sequência de operações em arrays (matrizes) e implementado usando NumPy é rápido o suficiente.
NumPy (Numeric Python) é uma biblioteca matemática básica para trabalhar com dados. Esta biblioteca é a base de outras bibliotecas para trabalhar com aprendizado de máquina ou tarefas de análise de dados (por exemplo, Pandas (trabalhando com dados tabulares), SciPy (métodos de otimização e cálculos científicos), < tt>Matplotlib (plotagem)).
Trabalhando com NumPy
Para começar a trabalhar com a biblioteca numpy, você precisa importá-la no início do programa como qualquer outra biblioteca,
importar numpy
ou então (que é usado com mais frequência)
importar numpy como np
Vetores NumPy
Um vetor (ou array) em NumPy é um conjunto ordenado de dados homogêneos.
Um elemento de um vetor pode ser acessado por seu índice, assim como é feito nas listas. Cada elemento do vetor tem seu lugar específico, que é definido durante a criação.
Todos os elementos do vetor têm o mesmo tipo de dados (int, str, bool, etc.).
Criando um vetor
Para criar um vetor, você precisa usar o construtor numpy.array (um objeto iterável).
Os parênteses indicam qualquer objeto iterável: tupla, lista, intervalo(), etc.
Exemplo
importar numpy como np
importar numpy como np
print(np.array((1,2,3,4,5))) # vetor da tupla
print(np.array([1,2,3,4,5])) # vetor da lista
print(np.array(range(5))) # vetor do gerador
|
Trabalhando com elementos vetoriais
Trabalhar com elementos de vetor é o mesmo que com elementos de lista, você pode acessar elementos por seu índice e também fazer fatias.
Exemplo
1
2
3
4
5
6
7
|
importar numpy como np
V = np.array((1,2,3,4))
imprimir(V[0]) # 1
imprimir(V[-1]) # 4
print(V[1:-2]) # [2]
print(V[::2]) # [1 3]
|
|
Selecionando elementos vetoriais
Para selecionar elementos do vetor, você pode usar um vetor contendo valores lógicos (expressões). Serão selecionados os elementos do vetor que serão True no vetor com valores booleanos.
Exemplo
importar numpy como np
V = np.array([1,-2,3,-4,5])
# seleciona os dois primeiros elementos do vetor
print(V[np.array((Verdadeiro, Verdadeiro, Falso, Falso, Falso))]) # [ 1 -2]
# seleciona elementos vetoriais positivos
print(V[V > 0]) # [1 3 5]
# seleciona elementos vetoriais pares
print(V[V % 2 == 0]) # [-2 -4]
|
Formas de criar arrays e matrizes
Outras maneiras úteis de criar arrays e matrizes.
Exemplo
1
2
3
4
5
6
7
8
9
10
onze
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
trinta
31
32
33
34
35
36
37
|
importar numpy como np
# Matriz unidimensional de zeros
print(np.zero(5)) #[0. 0.0.0.0.]
# Matriz bidimensional de zeros
print(np.zeros((2, 3))) # [[0. 0,0.]
#[0. 0.0.]]
# Array 3D de unidades
print(np.ones((2,3,4))) # [[[1. 1. 1. 1.]
# [1. 1. 1. 1.]
# [1. 1. 1. 1.]]
#
# [[1. 1. 1. 1.]
# [1. 1. 1. 1.]
# [1. 1. 1. 1.]]]
# Matriz de zeros com indicação de tipo
print(np.zeros(5, dtype=np.int)) # [0 0 0 0 0]
# Um array baseado em uma lista de listas
print(np.array([[1,2.0],[0,0],(1,3.)])) # [[1. 2.]
#[0. 0.]
# [1. 3.]]
# Uma matriz preenchida com elementos de uma progressão aritmética começando em 0
print(np.arange(10)) # [0 1 2 3 4 5 6 7 8 9]
# Progressão aritmética com indicação de tipo
print(np.arange(2, 10, dtype=np.float)) # [2. 3. 4. 5. 6. 7. 8. 9.]
# Progressão aritmética com diferença não inteira
print(np.arange(2, 3, 0.1)) # [2. 2,1 2,2 2,3 2,4 2,5 2,6 2,7 2,8 2,9]
# Progressão aritmética com um determinado número de termos
print(np.linspace(1., 4., 6)) # [1. 1,6 2,2 2,8 3,4 4. ]
|
|
Zero elementos da matriz
Função não-zero(V)
O resultado é uma tupla de arrays. Cada um desses arrays corresponde a um eixo separado do array original e contém índices com elementos diferentes de zero neste array.
V - uma matriz NumPy ou objeto semelhante a uma matriz.
Retorna uma Python tupla (tupla) - tupla com matrizes de índices de elementos diferentes de zero da matriz original V .
Função count_nonzero(V)
Esta função é baseada no método interno __bool__() de objetos Python que verifica se eles são verdadeiros. Segue-se que a função count_nonzero() é realmente capaz de trabalhar não apenas com números, mas também com quaisquer objetos que podem ser verdadeiros ou falsos.
V - uma matriz NumPy ou objeto semelhante a uma matriz.
A função retorna o número de elementos de matriz diferentes de zero ao longo do eixo especificado.
|
Matrizes diagonais
A função diag(V, k=0) permite extrair uma diagonal de uma matriz, bem como construir matrizes diagonais a partir de matrizes unidimensionais.
V - Um objeto tipo array, arrays bidimensionais ou unidimensionais, matrizes, listas ou tuplas, ou qualquer função ou objeto com um método que retorna uma lista ou tupla.
k - índice da diagonal (opcional).
O padrão é k = 0 que corresponde à diagonal principal. Um valor k positivo move a diagonal para cima, um valor negativo a move para baixo.
A função retorna array NumPy (ndarray ) - a diagonal da matriz especificada ou uma matriz diagonal da matriz unidimensional especificada.
|
Matrizes 2D NumPy
Um elemento de uma matriz bidimensional é acessado especificando as coordenadas do elemento, primeiro o número da linha e depois o número da coluna. As coordenadas são separadas por vírgulas.
Qualquer array pode ser convertido em um array bidimensional usando a função reshape().
Exemplo
1
2
3
4
5
6
7
8
|
# A função reshape() altera a forma de um array sem alterar seus dados.
x = np.arange(12).reshape(3, 4)
print(x) # [[ 0 1 2 3]
# [ 4 5 6 7]
# [8 9 10 11]]
# Para acessar um elemento, especifique suas coordenadas separadas por vírgulas
print(x[1, 2]) # 6
|
|