Um guia essencial para Numpy para Machine Learning em Python

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:

1. Ten trends of Artificial Intelligence (AI) in 2019

2. Estourando as bolhas do jargão – Aprendizado Profundo

3. Como podemos melhorar a qualidade de nossos dados?

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.

Fonte e Direitos reservados ao Autor
Traduzido por Google.

3 comentários em “Um guia essencial para Numpy para Machine Learning em Python”

  1. Pingback: Estatidados

Deixe um comentário