Функция select
Функция select выбирает элементы из списка
массивов на основе списка условий. Первым параметром
функция принимает список условий (булевых массивов),
вторым - список массивов для выбора. Возвращается
массив, где каждый элемент выбирается из первого
массива, для которого соответствующее условие
истинно.
Синтаксис
np.select(condlist, choicelist, [default])
Пример
Выберем значения из разных массивов на основе условий:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
cond1 = arr < 3
cond2 = arr > 3
choice1 = np.array([10, 20, 30, 40, 50])
choice2 = np.array([100, 200, 300, 400, 500])
res = np.select([cond1, cond2], [choice1, choice2])
print(res)
Результат выполнения кода:
[ 10 20 0 400 500]
Пример
Используем значение по умолчанию для невыбранных элементов:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
cond1 = arr < 3
cond2 = arr > 3
choice1 = np.array([10, 20, 30, 40, 50])
choice2 = np.array([100, 200, 300, 400, 500])
res = np.select([cond1, cond2], [choice1, choice2], default=999)
print(res)
Результат выполнения кода:
[ 10 20 999 400 500]
Пример
Используем несколько условий с разными массивами:
import numpy as np
arr = np.array([-2, -1, 0, 1, 2])
cond1 = arr < 0
cond2 = arr == 0
cond3 = arr > 0
choice1 = np.full(5, -1)
choice2 = np.zeros(5)
choice3 = np.full(5, 1)
res = np.select([cond1, cond2, cond3], [choice1, choice2, choice3])
print(res)
Результат выполнения кода:
[-1 -1 0 1 1]
Пример
Применим select для классификации данных:
import numpy as np
arr = np.array([1, 5, 10, 15, 20, 25])
cond1 = arr <= 5
cond2 = (arr > 5) & (arr <= 15)
cond3 = arr > 15
choice1 = np.full(6, 'low')
choice2 = np.full(6, 'medium')
choice3 = np.full(6, 'high')
res = np.select([cond1, cond2, cond3], [choice1, choice2, choice3])
print(res)
Результат выполнения кода:
['low' 'low' 'medium' 'medium' 'high' 'high']