Как использовать NumPy, где() с несколькими условиями


Вы можете использовать следующие методы для использования функции NumPy where() с несколькими условиями:

Способ 1: используйте where() с ИЛИ

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

Способ 2: используйте where() с AND

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

В следующем примере показано, как использовать каждый метод на практике.

Способ 1: используйте where() с ИЛИ

В следующем коде показано, как выбрать каждое значение в массиве NumPy, которое меньше 5 или больше 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])

Обратите внимание, что четыре значения в массиве NumPy были меньше 5 или больше 20.

Вы также можете использовать функцию размера , чтобы просто найти, сколько значений соответствует одному из условий:

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

4

Способ 2: используйте where() с AND

В следующем коде показано, как выбрать каждое значение в массиве NumPy, которое больше 5 и меньше 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])

Выходной массив показывает семь значений в исходном массиве NumPy, которые были больше 5 и меньше 20.

Еще раз, вы можете использовать функцию размера , чтобы найти, сколько значений удовлетворяет обоим условиям:

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

7

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции в NumPy:

Как рассчитать режим массива NumPy
Как найти индекс значения в массиве NumPy
Как сопоставить функцию с массивом NumPy