Search
Close this search box.
Vetorização de operações condicionais com NumPy
Vetorização de operações condicionais com NumPy

Posts Relacionados:

NumPy é a biblioteca Python mais popular para realizar operações com matrizes, arranjos e tensores. Neste post, exploraremos a vetorização com NumPy em operações condicionais.

Receba nossa newsletter

Vetorização com NumPy

vector

Vetorização é o centro da maioria dos algoritmos de IA. Eficiente e capaz de lidar com grandes conjuntos de dados, ela é presença garantida em praticamente todos os aspectos do desenvolvimento e uso de modelos e algoritmos inteligentes.

NumPy é a biblioteca Python mais popular para realizar operações vetorizadas com matrizes, arranjos e tensores. A vetorização com NumPy permite o cálculo eficiente de funções em matrizes inteiras de uma só vez. NumPy oferece suporte para trabalhar com matrizes grandes e multidimensionais, e dispõem de uma ampla gama de funções matemáticas de alto desempenho para operar sobre elas. Neste post, exploraremos como vetorizar operações condicionais usando o NumPy. Abordaremos alguns casos de uso comuns e forneceremos exemplos de como aplicar essas técnicas em seus próprios códigos.

O que são operações condicionais?

As operações condicionais são usadas para tomar decisões com base em condições ou critérios. No contexto do NumPy, operações condicionais são frequentemente usadas para executar operações que dependem do valor de um elemento em uma matriz. Quando lidamos com matrizes, frequentemente precisamos identificar quais de seus elementos se encaixam numa certa condição para realizarmos operações apenas sobre eles. Essas identificações não podem ser feitas com operadores condicionais comuns como if e else. Portanto, precisamos de operações condicionais próprias para matrizes que podem ser realizadas com NumPy.

Operações condicionais comuns

Alguns tipos comuns de operações condicionais incluem:

Igualdades (a == b) e desigualdades (a != b): compara duas matrizes para verificar quais de seus elementos são iguais ou diferentes. Veja um exemplo, o resultado retorna uma matriz booleana:

				
					import numpy as np

a = np.array([1, 2, 3, 4, 5])
b = np.array([1, 0, 3, 0, 5])
print(a == b) # compara os itens de a e b para verificar igualdades
# resultados: [ True False  True False  True]
				
			
Maior que (a > b) e menor que (a < b): compara duas matrizes em termos de elementos e retorna uma matriz booleana indicando quais elementos são maiores ou menores que outros. Veja um caso ilustrativo:
				
					a = np.array([1, 2, 3, 4, 5])
b = np.array([1, 0, 3, 0, 5])
print(a > b) # compara os itens de a e b para verificar que itens de a são maiores do que seus correspondentes em b
# resultados: [False  True False  True False]
				
			

Vetorização de operações condicionais com NumPy

O NumPy fornece várias maneiras de vetorizar operações condicionais. A seguir, exploraremos as principais.

Máscaras booleanas

Uma maneira de vetorizar operações condicionais é usar máscaras booleanas. Uma máscara booleana é uma matriz em que cada elemento é ‘True’ ou ‘False’, dependendo da condição. Veja um exemplo:

				
					import numpy as np

a = np.array([1, 2, 3, 4, 5])

# Cria uma máscara booleana
mask = a >= 5 # verifica itens de a maiores ou iguais a 5
print(mask)
# resultados: [False False False False  True]
				
			

np.where()

Outra maneira de vetorizar operações condicionais é usar a função np.where(). Ela pode ser utilizada para retornar os índices dos elementos onde uma condição é verdadeira como ilustrado abaixo:

				
					arr = np.array([[1,2,3], [4,5,6], [7,8,9]])
print(np.where(arr<5)) # retorna os índices dos itens de arr menores do que 5
# resultados: (array([0, 0, 0, 1]), array([0, 1, 2, 0]))
				
			

Neste exemplo, o método np.where() foi usado para retornar os índices dos elementos da matriz arr menores do que 5. O np.where() também pode ser usado para testar uma condição e já aplicar uma operação com base no resultado obtido, como ilustrado abaixo. Neste caso, obtemos os índices dos elementos menores do que 5 e os substituímos por 0:

				
					
arr = np.array([[1,2,3], [4,5,6], [7,8,9]])
arr2 = np.where(arr < 5, 0, arr)
print(arr2)
# resultados: 
# [[0 0 0]
#  [0 5 6]
#  [7 8 9]]
				
			
O comando np.where() também pode ser usado em combinação com operadores lógicos como and (&) e or (|) para operações condicionais complexas. No caso ilustrativo abaixo, criamos uma matriz arr2 a partir da substituição dos elementos da matriz arr maiores do 2 e menores do que 5 por 0:
				
					arr = np.array([[1,2,3], [4,5,6], [7,8,9]])
arr2 = np.where((arr < 5) & ( arr > 2), 0, arr)
print(arr2)
# resultados:
# [[1 2 0]
#  [0 5 6]
#  [7 8 9]]
				
			

np.logical_and(), np.logical_or() e np.logical_not()

O NumPy também fornece funções próprias para operações lógicas: np.logical_and(), np.logical_or() e np.logical_not(). Essas funções podem ser usadas para criar condições booleanas complexas. Veja um exemplo ilustrativo:

				
					arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
mask = np.logical_and(arr > 5, arr < 9) # verifica os elementos maiores do que 5 e menores do que 9
print(mask)
# resultados: [False False False False False  True  True  True False]
				
			

Conclusões

Neste post, abordamos como vetorizar operações condicionais usando o NumPy. Discutimos algumas técnicas comuns para conseguir isso: máscaras booleanas, ‘np.where()’ e funções lógicas. Ao aproveitar essas técnicas, você pode melhorar significativamente o desempenho dos seus códigos, reduzindo o número de loops e iterações.

Encontrou algum erro ou quer fazer uma sugestão? Por favor, entre em contato usando nosso formulário de contatos.

Imagem com IA Generativa – Dia 274

IA generativa img 274

Arte com IA generativa: imagem do dia

Todos os dias, postamos um exemplo de imagem artística gerada com inteligência artificial.

Tutoriais

Postagens Mais Recentes

Outras Postagens Que Podem Interessar

Veja
Mais

Fique em contato

Se inscreva para receber nossa newsletter com novidades.

aprendiz artificial