Як відфільтрувати масив 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 DataFrame за кількома умовами
Як використовувати фільтр «NOT IN» у Pandas DataFrame