Menu
CoddyTech

Булевы маски

Часть раздела Данные и графики путешествия по Machine Learning на Coddy. Урок 14 из 60.

Какие телефоны нужно зарядить? Сравните массив с числом, и для каждого значения получите ответ True или False. Такой ответ называется булевой маской:

Пять уровней заряда аккумулятора: 80, 15, 42, 9 и 67, показанные в виде ячеек. Ячейки 15 и 9 выделены, а маска ниже содержит значения False, True, False, True, False

Поместите маску в квадратные скобки, чтобы оставить значения True, или просуммируйте её, чтобы подсчитать их:

levels = np.array([80, 15, 42, 9, 67])
low = levels < 20
print(levels[low])
print(low.sum())

Будет выведено:

[15  9]
2

True считается за 1, а False — за 0. Совпадает и подсчитывает, без цикла.

Объединяй маски с помощью & (оба условия) или | (любое из условий), заключая каждое сравнение в скобки: (levels > 30) & (levels < 70).

challenge icon

Задание

Легко

Приложению курьерской службы нужны данные о доставках, выполненных вовремя сегодня: тех, на которые ушло от low до high минут включительно. Массив times готов, программа считывает low и high. Выведите:

  1. On time: время доставок, выполненных вовремя, в исходном порядке.
  2. On time count: их количество.
  3. Outside count: количество доставок, которые заняли меньше low или больше high минут.

Для промежутка от 30 до 45 минут:

On time: [34 41 38 31 44]
On time count: 5
Outside count: 7

Попробуйте сами

import numpy as np

times = np.array([18, 34, 25, 41, 22, 29, 15, 38, 27, 31, 44, 20])
low = int(input())
high = int(input())

# Напишите свой код ниже
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Данные и графики

Потренируйтесь самостоятельно: Онлайн-компилятор Python