Как отфильтровать массив NumPy (4 примера)


Вы можете использовать следующие методы для фильтрации значений в массиве 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