Matriz de Filtro NumPy
Filtrando Matrizes
Obter alguns elementos de um array existente e criar um novo array a partir deles é chamado de filtragem .
No NumPy, você filtra um array usando uma lista de índices booleanos .
Uma lista de índices booleanos é uma lista de booleanos correspondentes aos índices na matriz.
Se o valor em um índice for True
esse elemento estiver contido na matriz filtrada, se o valor nesse índice for
False
esse elemento será excluído da matriz filtrada.
Exemplo
Crie uma matriz dos elementos no índice 0 e 2:
import numpy as np
arr = np.array([41, 42, 43, 44])
x = [True,
False, True, False]
newarr = arr[x]
print(newarr)
O exemplo acima retornará [41, 43]
, por quê?
Porque o novo filtro contém apenas os valores onde a matriz de filtros tinha o valor
True
, neste caso, índice 0 e 2.
Criando a matriz de filtros
No exemplo acima, codificamos os valores True
e False
, mas o uso comum é criar uma matriz de filtro com base nas condições.
Exemplo
Crie uma matriz de filtros que retornará apenas valores superiores a 42:
import numpy as np
arr = np.array([41, 42, 43, 44])
#
Create an empty list
filter_arr = []
# go through each element in
arr
for element in arr:
# if the element is higher than 42, set
the value to True, otherwise False:
if element > 42:
filter_arr.append(True)
else:
filter_arr.append(False)
newarr = arr[filter_arr]
print(filter_arr)
print(newarr)
Exemplo
Crie uma matriz de filtro que retornará apenas elementos pares da matriz original:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7])
#
Create an empty list
filter_arr = []
# go through each element in
arr
for element in arr:
# if the element is completely divisble
by 2, set the value to True, otherwise False
if element % 2 == 0:
filter_arr.append(True)
else:
filter_arr.append(False)
newarr = arr[filter_arr]
print(filter_arr)
print(newarr)
Criando filtro diretamente do array
O exemplo acima é uma tarefa bastante comum no NumPy e o NumPy fornece uma boa maneira de lidar com isso.
Podemos substituir diretamente a matriz em vez da variável iterável em nossa condição e ela funcionará exatamente como esperamos.
Exemplo
Crie uma matriz de filtros que retornará apenas valores superiores a 42:
import numpy as np
arr = np.array([41, 42, 43, 44])
filter_arr = arr
> 42
newarr = arr[filter_arr]
print(filter_arr)
print(newarr)
Exemplo
Crie uma matriz de filtro que retornará apenas elementos pares da matriz original:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7])
filter_arr = arr
% 2 == 0
newarr = arr[filter_arr]
print(filter_arr)
print(newarr)