terça-feira, 14 de abril de 2020

Matriz filtro com NumPy

Matriz filtro com NumPy


Se for preciso criar uma matriz somente com os elementos selecionado, podemos criar uma matriz que será usada como um filtro. Essa matriz é feita com uma sequência de True e False. O elemento correspondente na matriz de filtro que for True vai ser adicionado na nova matriz. Se o elemento correspondente na matriz de filtro for False esse elemento não será adicionado.
Exemplo
import numpy as np

array = np.array([1, 2, 3, 4, 5, 6])
matriz_filtro = [True, False, True, False, True, False]
novo_array = array[matriz_filtro]
print(novo_array)
O resultado apresentado será 1, 3 e 5. Isso por que os elementos da matriz filtro é true e false em sequência.

Criando uma matriz de filtro

O cenário mais comum é criar a matriz de filtro na execução do programa. Até por que se fosse pra escolher cada elemento que vai ter na matriz, seria mais fácil criar a matriz desejada logo, sem precisar criar duas matrizes. A matriz com todos os elementos e a matriz de filtro poderiam ser deixadas de lado, e criar logo a matriz com os elementos desejados.
Imagine que você precisar tirar todos os números pares de uma matriz. Esse exemplo fica fácil se todos os elementos da matriz estiverem ordenados e sem elementos faltando. Mais e se os números não estiverem ordenados, e ainda, faltando elementos da sequência? Faça uma verificação na matriz.
Exemplo
import numpy as np

array = np.array([1, 2, 7, 4, 9, 3, 8, 5])
matriz_filtro = []

for i in array:
  if i % 2 >= 1:
    matriz_filtro.append(True)
  else:
    matriz_filtro.append(False)

novo_array = array[matriz_filtro]
print(novo_array)

0 comentários:

Postar um comentário