Отбор по маске в NumPy
Логический массив той же длины, что
и данные, показывает, какие ячейки
подходят. Если поставить его в квадратные
скобки сразу после имени массива,
NumPy соберёт значения только там,
где стоит True.
Создадим ряд и оставим числа больше
3:
import numpy as np
scores = np.array([1, 4, 3, 5])
print(scores[scores > 3]) # выведет [4 5]
Условие можно записать в переменную и передать её в скобки. Результат отбора всё равно одномерный ряд:
import numpy as np
temps = np.array([10, 20, 15, 25])
mask = temps > 18
print(temps[mask]) # выведет [20 25]
Составное условие с оператором &
тоже даёт маску. Возьмём числа
между 2 и 4 включительно:
import numpy as np
vals = np.array([1, 3, 4, 6])
print(vals[(vals >= 2) & (vals <= 4)]) # выведет [3 4]
Создайте ряд из чисел 2, 7,
5 и 9 и выведите только
те элементы, которые больше 6.
Задайте ряд из пяти температур и
выведите значения, для которых
выполняется условие «не меньше
0 и не больше 30».
Создайте ряд из чисел 1, 2,
2 и 3, сохраните маску
совпадения с 2 в переменную
и выведите отобранные элементы.