Como usar numpy where() com múltiplas condições


Você pode usar os seguintes métodos para usar a função NumPywhere() com múltiplas condições:

Método 1: Use Where() com OR

 #select values less than five or greater than 20
x[np. where ((x < 5) | (x > 20))]

Método 2: Use Where() com AND

 #select values greater than five and less than 20
x[np. where ((x > 5) & (x < 20))]

O exemplo a seguir mostra como usar cada método na prática.

Método 1: Use Where() com OR

O código a seguir mostra como selecionar cada valor em uma matriz NumPy menor que 5 ou maior que 20:

 import numpy as np

#define NumPy array of values
x = np. array ([1, 3, 3, 6, 7, 9, 12, 13, 15, 18, 20, 22])

#select values that meet one of two conditions
x[np. where ((x < 5) | (x > 20))]

array([ 1, 3, 3, 22])

Observe que quatro valores na matriz NumPy eram menores que 5 ou maiores que 20.

Você também pode usar a função size para simplesmente descobrir quantos valores atendem a uma das condições:

 #find number of values that are less than 5 or greater than 20
(x[np. where ((x < 5) | (x > 20))]). size

4

Método 2: Use Where() com AND

O código a seguir mostra como selecionar cada valor de uma matriz NumPy maior que 5 e menor que 20:

 import numpy as np

#define NumPy array of values
x = np. array ([1, 3, 3, 6, 7, 9, 12, 13, 15, 18, 20, 22])

#select values that meet two conditions
x[np. where ((x > 5) & (x < 20))]

array([6, 7, 9, 12, 13, 15, 18])

A matriz de saída exibe os sete valores da matriz NumPy original que eram maiores que 5 e menores que 20.

Novamente, você pode usar a função size para determinar quantos valores atendem a ambas as condições:

 #find number of values that are greater than 5 and less than 20
(x[np. where ((x > 5) & (x < 20))]). size

7

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras operações comuns no NumPy:

Como calcular o modo do array NumPy
Como encontrar o índice de valor na matriz NumPy
Como mapear uma função para um array NumPy

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *