Folha de dicas do NumPy
O sistema NumPy é uma extensão de cálculo numérico de código aberto para Python. Esta ferramenta pode ser usada para armazenar e processar grandes matrizes, sendo muito mais eficiente do que a própria estrutura de lista aninhada do Python (que também pode ser usada para representar matrizes).
Explicação
Use arr para representar um objeto de array numpy.
Importar Módulo
import numpy as npImportar/Exportar
| np.loadtxt(‘file.txt’) | Ler de arquivo de texto |
| np.genfromtxt(‘file.csv’,delimiter=’,’) | Ler de arquivo CSV |
| np.savetxt(‘file.txt’,arr,delimiter=’ ‘) | Escrever em arquivo de texto |
| np.savetxt(‘file.csv’,arr,delimiter=’,’) | Escrever em arquivo CSV |
Criar Array
| np.array([1,2,3]) | Array 1D |
| np.array([(1,2,3),(4,5,6)]) | Array 2D |
| np.zeros(3) | Array 1D de comprimento 3 com todos os zeros |
| np.ones((3,4)) | Array 3x4 com todos os valores como 1 |
| np.eye(5) | Array 5x5 com 1s na diagonal e 0s em outros lugares (Matriz Identidade) |
| np.linspace(0,100,6) | Array de 6 valores uniformemente espaçados de 0 a 100 |
| np.arange(0,10,3) | Array de valores de 0 a menos de 10 com passo 3 (ex: [0,3,6,9]) |
| np.full((2,3),8) | Array 2x3 com todos os valores como 8 |
| np.random.rand(4,5) | Array 4x5 de floats aleatórios entre 0-1 |
| np.random.rand(6,7)*100 | Array 6x7 de floats aleatórios entre 0-100 |
| np.random.randint(5,size=(2,3)) | Array 2x3 com inteiros aleatórios entre 0-4 |
Inspecionar Propriedades
| arr.size | Retorna o número total de elementos do array |
| arr.shape | Retorna as dimensões do array |
| arr.dtype | Retorna o tipo de elementos no array |
| arr.astype(dtype) | Converte o tipo de elemento do array para dtype |
| arr.tolist() | Converte o array para uma lista |
| np.info(np.eye) | Ver documentação para np.eye |
Copiar/Ordenar/Remodelar
| np.copy(arr) | Copia arr para nova memória |
| arr.view(dtype) | Cria visão dos elementos de arr com tipo dtype |
| arr.sort() | Ordena arr |
| arr.sort(axis=0) | Ordena eixo específico de arr |
| two_d_arr.flatten() | Achata array 2D para 1D |
| arr.T | Transpõe arr (linhas tornam-se colunas e vice-versa) |
| arr.reshape(3,4) | Remodela arr para 3 linhas, 4 colunas sem alterar os dados |
| arr.resize((5,6)) | Altera a forma do arr para 5x6 e preenche novos valores com 0 |
Adicionar/Remover Elementos
| np.append(arr,values) | Adiciona valores ao final do arr |
| np.insert(arr,2,values) | Insere valores no arr antes do índice 2 |
| np.delete(arr,3,axis=0) | Exclui linha no índice 3 de arr |
| np.delete(arr,4,axis=1) | Exclui coluna no índice 4 de arr |
Combinar/Dividir
| np.concatenate((arr1,arr2),axis=0) | Adiciona arr2 como linhas ao final de arr1 |
| np.concatenate((arr1,arr2),axis=1) | Adiciona arr2 como colunas ao final de arr1 |
| np.split(arr,3) | Divide arr em 3 sub-arrays |
| np.hsplit(arr,5) | Divide arr horizontalmente no 5º índice |
Indexação/Slicing/Subconjuntos
| arr[5] | Retorna o elemento no índice 5 |
| arr[2,5] | Retorna o elemento do array 2D no índice [2][5] |
| arr[1]=4 | Atribui ao elemento do array no índice 1 o valor 4 |
| arr[1,3]=10 | Atribui ao elemento do array no índice [1][3] o valor 10 |
| arr[0:3] | Retorna os elementos nos índices 0,1,2 (Em um array 2D: retorna as linhas 0,1,2) |
| arr[0:3,4] | Retorna os elementos nas linhas 0,1,2 na coluna 4 |
| arr[:2] | Retorna os elementos nos índices 0,1 (Em um array 2D: retorna as linhas 0,1) |
| arr[:,1] | Retorna os elementos no índice 1 em todas as linhas |
| arr<5 | Retorna um array com valores booleanos |
| (arr1<3) & (arr2>5) | Retorna um array com valores booleanos |
| ~arr | Inverte um array booleano |
| arr[arr<5] | Retorna os elementos do array menores que 5 |
Matemática Escalar
| np.add(arr,1) | Adiciona 1 a cada elemento do array |
| np.subtract(arr,2) | Subtrai 2 de cada elemento do array |
| np.multiply(arr,3) | Multiplica cada elemento do array por 3 |
| np.divide(arr,4) | Divide cada elemento do array por 4 (retorna np.nan para divisão por zero) |
| np.power(arr,5) | Eleva cada elemento do array à 5ª potência |
Matemática Vetorial
| np.add(arr1,arr2) | Adiciona arr2 a arr1 elemento a elemento |
| np.subtract(arr1,arr2) | Subtrai arr2 de arr1 elemento a elemento |
| np.multiply(arr1,arr2) | Multiplica arr1 por arr2 elemento a elemento |
| np.divide(arr1,arr2) | Divide arr1 por arr2 elemento a elemento |
| np.power(arr1,arr2) | Eleva elementos de arr1 à potência de elementos de arr2 elemento a elemento |
| np.array_equal(arr1,arr2) | Retorna True se os arrays tiverem os mesmos elementos e forma |
| np.sqrt(arr) | Raiz quadrada de cada elemento no array |
| np.sin(arr) | Seno de cada elemento no array |
| np.log(arr) | Logaritmo natural de cada elemento no array |
| np.abs(arr) | Valor absoluto de cada elemento no array |
| np.ceil(arr) | Arredonda para cima para o inteiro mais próximo |
| np.floor(arr) | Arredonda para baixo para o inteiro mais próximo |
| np.round(arr) | Arredonda para o inteiro mais próximo |
Estatísticas
| np.mean(arr,axis=0) | Retorna a média ao longo de um eixo específico |
| arr.sum() | Retorna a soma de arr |
| arr.min() | Retorna o valor mínimo de arr |
| arr.max(axis=0) | Retorna o valor máximo de um eixo específico |
| np.var(arr) | Retorna a variância do array |
| np.std(arr,axis=1) | Retorna o desvio padrão de um eixo específico |
| arr.corrcoef() | Retorna o coeficiente de correlação do array |