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
O resultado apresentado será 1, 3 e 5. Isso por que os elementos da matriz filtro é true e false em sequência.
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)
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)
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)
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