Como filtrar um array numpy (4 exemplos)
Você pode usar os seguintes métodos para filtrar os valores de um array NumPy:
Método 1: Filtrar valores com base em uma única condição
#filter for values less than 5 my_array[my_array < 5 ]
Método 2: Filtrar valores usando a condição “OR”
#filter for values less than 5 or greater than 9 my_array[(my_array < 5 ) | (my_array > 9 )]
Método 3: Filtrar valores usando a condição “AND”
#filter for values greater than 5 and less than 9 my_array[(my_array > 5 ) & (my_array < 9 )]
Método 4: Filtre os valores contidos na lista
#filter for values that are equal to 2, 3, 5, or 12 my_array[np. in1d (my_array, [2, 3, 5, 12])]
Este tutorial explica como usar cada método na prática com o seguinte array NumPy:
import numpy as np
#create NumPy array
my_array = np. array ([1, 2, 2, 3, 5, 6, 7, 10, 12, 14])
#view NumPy array
my_array
array([ 1, 2, 2, 3, 5, 6, 7, 10, 12, 14])
Exemplo 1: Filtrar valores com base em uma condição
O código a seguir mostra como filtrar os valores da matriz NumPy com base em uma única condição:
#filter for values less than 5 my_array[(my_array < 5 )] array([1, 2, 2, 3]) #filter for values greater than 5 my_array[(my_array > 5 )] array([6,7,10,12,14]) #filter for values equal to 5 my_array[(my_array == 5 )] array([5])
Exemplo 2: Filtrar valores usando a condição “OR”
O código a seguir mostra como filtrar os valores do array NumPy usando uma condição “OR”:
#filter for values less than 5 or greater than 9 my_array[(my_array < 5 ) | (my_array > 9 )] array([ 1, 2, 2, 3, 10, 12, 14])
Este filtro retorna valores do array NumPy menores que 5 ou maiores que 9.
Exemplo 3: Filtrar valores usando a condição “AND”
O código a seguir mostra como filtrar os valores do array NumPy usando uma condição “AND”:
#filter for values greater than 5 and less than 9 my_array[(my_array > 5 ) & (my_array < 9 )] array([6, 7])
Este filtro retorna valores do array NumPy maiores que 5 e menores que 9.
Exemplo 4: filtre os valores contidos na lista
O código a seguir mostra como filtrar os valores do array NumPy contidos em uma lista:
#filter for values that are equal to 2, 3, 5, or 12 my_array[np. in1d (my_array, [2, 3, 5, 12])] array([ 2, 2, 3, 5, 12])
Este filtro retorna apenas valores iguais a 2, 3, 5 ou 12.
Nota : Você pode encontrar a documentação completa para a função NumPy in1d() aqui .
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras operações comuns de filtragem em Python:
Como filtrar linhas do Pandas DataFrame que contêm uma string específica
Como filtrar um DataFrame do Pandas em múltiplas condições
Como usar o filtro “NOT IN” no Pandas DataFrame