Вы можете использовать следующие методы для фильтрации значений в массиве NumPy:
Метод 1: фильтрация значений на основе одного условия
#filter for values less than 5
my_array[my_array < 5 ]
Метод 2: фильтрация значений с использованием условия «ИЛИ»
#filter for values less than 5 *or* greater than 9
my_array[(my_array < 5 ) | (my_array > 9 )]
Способ 3: фильтрация значений с использованием условия «И»
#filter for values greater than 5 *and* less than 9
my_array[(my_array > 5 ) & (my_array < 9 )]
Способ 4: фильтрация значений, содержащихся в списке
#filter for values that are equal to 2, 3, 5, or 12
my_array[np.in1d (my_array, [2, 3, 5, 12])]
В этом руководстве объясняется, как использовать каждый метод на практике со следующим массивом 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])
Пример 1. Фильтрация значений по одному условию
В следующем коде показано, как фильтровать значения в массиве NumPy на основе всего одного условия:
#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])
Пример 2. Фильтрация значений с использованием условия «ИЛИ»
В следующем коде показано, как фильтровать значения в массиве NumPy с помощью условия «ИЛИ»:
#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])
Этот фильтр возвращает значения в массиве NumPy, которые меньше 5 или больше 9.
Пример 3. Фильтрация значений с использованием условия «И»
В следующем коде показано, как фильтровать значения в массиве NumPy с помощью условия «И»:
#filter for values greater than 5 *and* less than 9
my_array[(my_array > 5 ) & (my_array < 9 )]
array([6, 7])
Этот фильтр возвращает значения в массиве NumPy, которые больше 5 и меньше 9.
Пример 4: значения фильтра, содержащиеся в списке
В следующем коде показано, как фильтровать значения в массиве NumPy, содержащиеся в списке:
#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])
Этот фильтр возвращает только значения, равные 2, 3, 5 или 12.
Примечание.Полную документацию по функции NumPy in1d() можно найти здесь .
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные операции фильтрации в Python:
Как фильтровать строки Pandas DataFrame, содержащие определенную строку
Как фильтровать кадр данных Pandas по нескольким условиям
Как использовать фильтр «НЕ В» в Pandas DataFrame