Как отфильтровать массив 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

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