Как фильтровать массив 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, содержащие определенную строку
Как фильтровать DataFrame Pandas по нескольким условиям
Как использовать фильтр «НЕ В» в Pandas DataFrame