GUIA DE ACESSO RÁPIDO PYTHON – NUMPY
Biblioteca
A biblioteca NumPY é a biblioteca mais importante para computação científica no Python. Ela fornece uma matriz-objeto multidimensional de alta performance e as ferramentas para trabalhar com essas matrizes.
Você pode baixar a versão para impressão aqui: Vooo-Insights-Python_numpy_acesso_rapido
Em geral, importa-se a biblioteca dessa forma:
>>> import numpy as np
Matrizes NumPy
Criando matrizes
>>> a = np.array([1, 2, 3]) >>> b = np.array([(1.5, 2, 3), (4, 5, 6,)], dtype=float) >>> c = np.array([(1.5, 2, 3), (4, 5, 6,)], [(3, 2, 1), (4, 5, 6)], dtype=float)
Marcadores iniciais
Cria uma matriz de zeros
>>> np.zeros((3,4))
Cria uma matriz de uns
>>> np.ones((2,3,4), dtype=np.int16)
Cria uma matriz de valores arranjados por valor incremental
>>> d = np.arrange(10,25,5)
Cria uma matriz de valores arranjados por número de amostras
>>> np.linspace(0, 2, 9)
Cria uma matriz constante
>>> e = np.full((2, 2), 7)
Cria uma matriz identidade 2×2
>>> f = np.eye(2)
Cria uma matriz com valores aleatórios
>>> np.random.random((2, 2))
Cria uma matriz vazia
>>> np.empty((3, 2))
I/O
Salvando e carregando no disco
>>> np.save('minhamatriz', a) >>> np.savez('matriz.npz', a, b) >>> np.load('minhamatriz.npy)
Salvando e carregando arquivos de texto
>>> np.loadtxt('meuarquivo.txt') >>> np.genfromtxt('meuarquivo.csv', delimiter=',') >>> np.savetxt('minhamatriz.txt', a, delimiter=',')
Tipos de dados
Ponto flutuante de dupla precisão
>>> np.float32
Números complexos
>>> np.complex
Valores booleanos: TRUE, FALSE
>>> np.bool
Objeto Python
>>> np.object
String de largura fixa
>>> np.string_
Unicode de largura fixa
>>> np.unicode_
Inspecionando sua matriz
Dimensões
>>> a.shape
Largura da matriz
>>> len(a)
Número de dimensões
>>> b.ndim
Número de elementos
>>> e.size
Tipo de dados dos elementos
>>> b.dtype
Nome dos tipos de dados
>>> b.dtype.name
Converte uma matriz noutro tipo de dado
>>> b.astype(int)
Pedindo ajuda
>>> np.info(np.ndarray.dtype)
Matemática com matrizes
Operações aritméticas
Subtração
>>> g = a - b array([[-0.5, 0., 0.], [-3., -3., -3.]]) >>> np.subtract(a, b)
Adição
>>> b + a array([[2.5, 4., 6.], [5., 7., 9.]]) >>> np.add(b, a)
Divisão
>>> a / b array([[0.6667, 1., 1.], [0.25, 0.4, 0.5]]) >>> np.divide(a, b)
Multiplicação
>>> a * b array([[1.5, 4., 9.], [4., 10., 18.]]) >>> np.multiply(a, b)
Exponenciação
>>> np.exp(b)
Raiz quadrada
>>> np.sqrt(b)
Função seno
>>> np.sin(a)
Função cosseno
>>> np.cos(b)
Função logarítmica
>>> np.log(a, b)
Função ponto
>>> e.dot(f) array([[7., 7.], [7., 7.]])
Comparações
Comparação de elementos
>>> a == b array([[False, True, True], [False, False, False]])
Comparação de elementos
>>> a < 2 array([True, False, False])
Comparação de matrizes
>>> np.array_equal(a, b)
Funções agregadas
Soma de matrizes
>>> a.sum()
Valor mínimo dentro da matriz
>>> a.min()
Valor máximo numa linha
>>> b.max(axis=0)
Soma acumulada dos elementos
>>> b.cumsum(axis=0)
Média
>>> a.mean()
Mediana
>>> b.median()
Coeficiente de correlação
>>> a.corrcoef()
Desvio padrão
>>> np.std(b)
Copiando matrizes
Cria uma visão da matriz com os mesmos dados
>>> h = a.view()
Cria uma cópia da matriz
>>> np.copy(a)
Cria uma cópia profunda da matriz
>>> h = a.copy()
Ordenando matrizes
Ordena uma matriz
>>> a.sort()
Ordena os elementos de um eixo da matriz
>>> c.sort(axis=0)
Subconjuntos, cortes, indexação
Subconjuntos
Seleciona o elemento no segundo índice
>>> a[2] 3
Seleciona o elemento na linha 1 e coluna 2
>>> b[1, 2] 6.0
Cortes
Seleciona itens no índice 0 e 1
>>> a[0:2] array([1, 2])
Seleciona itens nas linhas 0 e 1, na coluna 1
>>> b[0:2, 1] array([2., 5.])
Seleciona os itens da linha 1
>>> b[:1] array([[1.5, 2., 3.]])
O mesmo que [1, :, :]
>>> c[1, ...] array([[[3., 2., 1.], [4., 5., 6.]]])
Matriz a invertida
>>> a[ : :-1] array([3, 2, 1])
Indexação booleana
Seleciona itens de a menores que 2
>>> a[a > 2] array([1])
Indexação fancy
Seleciona elementos (1,0), (0,1), (1,2) e (0,0)
>>> b[[1, 0, 1, 0], [0, 1, 2, 0]] array([4., 2., 6., 1.5])
Seleciona um subconjunto das linhas e colunas das matrizes
>>> b[[1, 0, 1, 0]] [:, [0, 1, 2, 0]] array([[4., 5., 6, 4.]), [1.5, 2., 3., 1.5]]]), [4., 5., 6., 4.]]]), [1.5, 2., 3., 1.5]]])
Manipulação de matrizes
Transpondo uma matriz
Permuta as dimensões da matriz
>>> i = np.transpose(b) >>> i.T
Mudando o formato de uma matriz
Torna a matriz plana
>>> b.ravel()
Remodela, mas não muda os dados
>>> g.reshape(3, -2)
Adicionando/removendo elementos
Retorna nova matriz com forma(2,6)
>>> h.resize((2, 6))
Adiciona itens a uma matriz
>>> np.append(h, g)
Insere itens numa matriz
>>> np.insert(a, 1, 5)
Deleta itens de uma matriz
>>> np.delete(a, [1])
Combinando matrizes
Concatena matrizes
>>> np.concatenate((a, d), axis=0) array([1, 2, 3, 10, 15, 20])
Empilha matrizes verticalmente
>>> np.vstack((a, b)) array([[1., 2., 3.], [1.5, 2., 3.], [4., 5., 6.]]) >>> np.r_[e,f]
Empilha matrizes horizontalmente
>>> np.hstack((e,f)) array([7.,7.,1.,0.], [7.,7.,0.,1.])
Cria matrizes empilhadas por coluna
>>> np.column_stack((a,d)) array([[1,10], [2,15], [3,20]])
Cria matrizes empilhadas por coluna
>>> np.c_[a,d]
Partindo matrizes
Parte a matriz horizontalmente no terceiro índice
>>> np.hsplit(a, 3) [array([1]), array([2]), array([3])]
Parte a matriz horizontalmente no segundo índice
>>> np.vsplit(c,2) [array([[[1.5,2.,1.], [4.,5.,6.]]]), array([[[3.,2.,3.], [4.,5.,6.]]])]
Baixe a versão para impressão:
Vooo-Insights-Python_numpy_acesso_rapido
Veja também:
- Guia de acesso rápido – Python para Data Science – Matplotlib
- Python PrettyTable
- Participantes do mercado de pagamentos