Как использовать 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

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.