Por que isso seria útil para você?
Bem, já que a maioria de nós tende a esquecer (no caso daqueles que já implementaram algoritmos ML) as várias funções da biblioteca e acabam escrevendo código para funções pré-existentes usando lógica pura que é um desperdício de tempo e energia, em tais tempos torna-se essencial se entendermos as nuances da Biblioteca sendo usadas de forma eficiente. Então, o Numpy, sendo uma das bibliotecas essenciais para Machine Learning, requer um artigo próprio.
Quem são os leitores deste artigo?
Uma vez que a compreensão do Numpy é o ponto de partida do pré-processamento de dados e da implementação de Algoritmos ML, você pode ser alguém prestes a aprender Aprendizado de Máquina em um futuro próximo ou que acabou de começar. Numpy para ML.
Trending AI Articles:
4. Aprendizado de Máquina usando Regressão Logística em Python com Código
Mas meu foco principal ao escrever este artigo é que ele sirva como uma rápida atualização para o Numpy para aqueles que tiveram experiência com a biblioteca, mas precisam de uma rápida recapitulação.
O que estamos esperando? Vamos começar !!
A Numpy é uma biblioteca para a linguagem de programação Python, que adiciona suporte a matrizes e matrizes grandes e multidimensionais, além de uma grande coleção de funções matemáticas de alto nível para operar nesses arrays.
Além disso, o Numpy forma a base da pilha de Aprendizado de Máquina. Neste artigo, abordamos as operações Numpy mais usadas.
1) Criando um Vector
Aqui nós usamos o Numpy para criar uma matriz 1-D, que chamamos de vetor.
#Load Library import numpy as np #Create a vector as a Row vector_row = np.array([1,2,3]) #Create vector as a Column vector_column = np.array([[1],[2],[3]])
2) Criando uma matriz
Criamos uma Matriz 2-D em Numpy e a chamamos de Matriz. Contém 2 linhas e 3 colunas.
#Load Library import numpy as np #Create a Matrix matrix = np.array([[1,2,3],[4,5,6]]) print(matrix)
3) Criando uma matriz esparsa (Sparse Matrix)
Dados dados com muito poucos valores diferentes de zero você deseja representá-los com eficiência.
Uma situação freqüente no Machine Learning é ter uma quantidade enorme de dados; no entanto, a maioria dos elementos nos dados são Zeros. Por exemplo, vamos imaginar uma matriz onde as colunas são todos os produtos na Amazon e as linhas significam se um determinado usuário comprou esse item antes ou não. Agora, como você deve ter adivinhado, haveria muitos produtos que não foram comprados nem sequer uma única vez até agora e, portanto, a grande maioria dos elementos seria Zero.
Matrizes esparsas armazenam apenas elementos diferentes de zero e assumem que todos os outros valores serão nulos, levando a economias computacionais significativas.
#Load Library import numpy as np #Create a Matrix matrix = np.array([[0,0],[0,1],[3,0]]) print(matrix)
#Create Compressed Sparse Row(CSR) matrix matrix_sparse = sparse.csr_matrix(matrix) print(matrix_sparse)
4) Selecionando Elementos
Quando você precisa selecionar um ou mais elementos em um vetor ou matriz
#Load Library import numpy as np #Create a vector as a Row vector_row = np.array([ 1,2,3,4,5,6 ]) #Create a Matrix matrix = np.array([[1,2,3],[4,5,6],[7,8,9]]) print(matrix) #Select 3rd element of Vector print(vector_row[2]) #Select 2nd row 2nd column print(matrix[1,1])
#Select all elements of a vector print(vector_row[:])
#Select everything up to and including the 3rd element print(vector_row[:3])
#Select the everything after the 3rd element print(vector_row[3:])
#Select the last element print(vector[-1])
#Select the first 2 rows and all the columns of the matrix print(matrix[:2,:])
#Select all rows and the 2nd column of the matrix print(matrix[:,1:2])
5) Descrevendo uma Matriz
Quando você quiser saber sobre o tamanho e as dimensões da forma de uma Matriz.
import numpy as np #Create a Matrix matrix = np.array([[1,2,3],[4,5,6],[7,8,9]])
#View the Number of Rows and Columns print(matrix.shape)
#View the number of elements (rows*columns) print(matrix.size)
#View the number of Dimensions(2 in this case) print(matrix.ndim)
6) Aplicando operações aos elementos
Você deseja aplicar alguma função a vários elementos em uma matriz.
A classe vectorize de Numpy converte uma função em uma função que pode ser aplicada a vários elementos em uma matriz ou fatia de uma matriz.
#Load Library import numpy as np #Create a Matrix matrix = np.array([[1,2,3],[4,5,6],[7,8,9]]) print(matrix) #Create a function that adds 100 to something add_100 =lambda i: i+100 #Convert it into a vectorized function vectorized_add_100= np.vectorize(add_100) #Apply function to all elements in matrix print(vectorized_add_100(matrix))
7) Encontrando os valores máximos e mínimos
Usamos as funções max e min do Numpy:
#Load Library import numpy as np #Create a Matrix matrix = np.array([[1,2,3],[4,5,6],[7,8,9]]) print(matrix)
#Return the max element print(np.max(matrix))
#Return the min element print(np.min(matrix))
#To find the max element in each column print(np.max(matrix,axis=0))
#To find the max element in each row print(np.max(matrix,axis=1))
8) Calculando Média, Variância e Desvio Padrão
Quando você quiser calcular algumas estatísticas descritivas sobre uma matriz.
#Load Library import numpy as np #Create a Matrix matrix = np.array([[1,2,3],[4,5,6],[7,8,9]]) print(matrix)
#Mean print(np.mean(matrix))
#Standard Dev. print(np.std(matrix))
#Variance print(np.var(matrix))
9) remodelando matrizes
Quando você quiser reformular uma matriz (alterando o número de linhas e colunas) sem alterar os elementos.
#Load Library import numpy as np #Create a Matrix matrix = np.array([[1,2,3],[4,5,6],[7,8,9]]) print(matrix)
#Reshape print(matrix.reshape(9,1))
#Here -1 says as many columns as needed and 1 row print(matrix.reshape(1,-1))
#If we provide only 1 value Reshape would return a 1-d array of that length
print(marix.reshape(9))
#We can also use the Flatten method to convert a matrix to 1-d array
print(matrix.flatten())
10) Transpondo um vetor ou uma matriz
Ao transpor você troca as linhas e colunas de uma Matriz
#Load Library import numpy as np #Create a Matrix matrix = np.array([[1,2,3],[4,5,6],[7,8,9]]) print(matrix)
#Transpose the matrix print(matrix.T)
11) Encontrando o Determinante e o Rank de uma Matriz
A classificação de uma Matriz é o número de dimensões do espaço vetorial abrangido por suas linhas ou colunas.
#Load Library import numpy as np #Create a Matrix matrix = np.array([[1,2,3],[4,5,6],[7,8,9]]) print(matrix)
#Calculate the Determinant print(np.linalg.det(matrix))
#Calculate the Rank print(np.linalg.matrix_rank(matrix))
12) Obtendo a Diagonal de uma Matriz
Quando você precisa extrair apenas os elementos da diagonal de uma matriz
#Load Library import numpy as np #Create a Matrix matrix = np.array([[1,2,3],[4,5,6],[7,8,9]]) print(matrix)
#Print the Principal diagonal print(matrix.diagonal())
#Print the diagonal one above the Principal diagonal print(matrix.diagonal(offset=1))
#Print the diagonal one below Principal diagonal print(matrix.diagonal(offset=-1))
13) Calculando o traço de uma matriz
Trace of a Matrix é a soma dos elementos na Diagonal Principal da Matriz.
#Load Library import numpy as np #Create a Matrix matrix = np.array([[1,2,3],[4,5,6],[7,8,9]]) print(matrix)
#Print the Trace print(matrix.trace())
14) Encontrando Autovalores e Autovetores (Eigenvalues and Eigenvectors)
Os autovetores são amplamente usados em bibliotecas de Aprendizado de Máquina. Intuitivamente dada uma transformação linear representada por uma matriz, A, autovetores são vetores que quando essa transformação é aplicada, mudam apenas em escala (não direção). Mais formalmente
Off = Kv
Aqui A é uma matriz quadrada, K contém os autovalores e v contém os autovetores.
#Load Library import numpy as np #Create a Matrix matrix = np.array([[1,2,3],[4,5,6],[7,8,9]]) print(matrix) # Calculate the Eigenvalues and Eigenvectors of that Matrix eigenvalues ,eigenvectors=np.linalg.eig(matrix) print(eigenvalues) print(eigenvectors)
15) Calculando produtos de ponto
#Load Library import numpy as np #Create vector-1 vector_1 = np.array([ 1,2,3 ])
#Create vector-2 vector_1 = np.array([ 4,5,6 ])
#Calculate Dot Product print(np.dot(vector_1,vector_2))
#Alternatively you can use @ to calculate dot products print(vector_1 @ vector_2)
16) Adicionando, Subtraindo e Multiplicando Matrizes
#Load Library import numpy as np #Create Matrix-1 matrix_1 = np.array([[1,2,3],[4,5,6],[7,8,9]])
#Create Matrix-2 matrix_2 = np.array([[7,8,9],[4,5,6],[1,2,3]])
#Add the 2 Matrices print(np.add(matrix_1,matrix_2))
#Subtraction print(np.subtract(matrix_1,matrix_2))
#Multiplication(Element wise, not Dot Product) print(matrix_1*matrix_2)
17) Invertendo uma matriz
Isso é usado quando você deseja calcular o inverso de uma matriz quadrada
#Load Library import numpy as np #Create a Matrix matrix = np.array([[1,2,3],[4,5,6],[7,8,9]]) print(matrix)
#Calculate its inverse print(np.linalg.inv(matrix))
18) Gerando valores aleatórios
Numpy oferece uma ampla variedade de meios para gerar números aleatórios.
Além disso, às vezes pode ser útil retornar os mesmos números aleatórios para obter resultados previsíveis e repetíveis. Podemos fazer isso configurando o ‘Seed‘ (An Integer) do gerador pseudo-aleatório. Processos aleatórios com a mesma semente sempre produziriam o mesmo resultado.
#Load Library import numpy as np
#Set seed np.random.seed(1)
#Generate 3 random integers b/w 1 and 10 print(np.random.randint(0,11,3))
#Draw 3 numbers from a normal distribution with mean 1.0 and std 2.0 print(np.random.normal(1.0,2.0,3))
Portanto, isso praticamente cobre todas as Operações Numpy padrão que seriam necessárias para você iniciar sua jornada de Aprendizado de Máquina com o Python. Para outros, espero que isso seja uma boa atualização para o seu conhecimento preexistente no domínio.
3 comentários em “Um guia essencial para Numpy para Machine Learning em Python”