Показания датчиков
Часть раздела Данные и графики путешествия по Machine Learning на Coddy. Урок 58 из 60.
Датчик записывает температуру серверной каждый час, с 0-го часа (полночь) до 23-го. Если измерение не удаётся, вместо него записывается -999.
Техник хочет, чтобы для каждого дня была рассчитана сумма без учёта сбоев и построен график, как для понедельника (день 1):
При температуре выше 25 °C комнате требуется внимание.
Задание
СложноВ заготовке в week хранятся показания за четыре дня, по одной строке на день; также считывается номер дня от 1 до 4.
- Выведи, сколько показаний за этот день не удалось получить.
- Выведи среднее значение корректных показаний, округлённое до 1 десятичного знака с помощью
np.round, и количество показаний вышеlimit. - Выведи час с самой высокой температурой и его показание.
- Построй график корректных показаний в зависимости от часов, используя форму
fig, ax, с заголовкомServer Room Temperatureи подписямиHourиTemperature (C).
Для дня 1 весь вывод выглядит так:
Failed readings: 3
Average: 21.9
Hours above 25: 7
Warmest: hour 14 at 29.4
Charts drawn: 1
Title: Server Room Temperature
X label: Hour
Y label: Temperature (C)
Lines: 1
Across (x): [0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23]
Up (y): [17.2, 16.8, 16.5, 16.1, 16.4, 17.9, 19.6, 21.8, 23.5, 25.1, 27.9, 28.8, 29.4, 28.7, 27.2, 25.6, 23.9, 21, 19.8, 18.6, 17.9]Попробуйте сами
import numpy as np
import matplotlib.pyplot as plt
# Температура в серверной (C) по часам от 0 до 23, одна строка на каждый день; -999 означает, что измерение не удалось
week = np.array([
[17.2, 16.8, 16.5, -999, 16.1, 16.4, 17.9, 19.6, 21.8, 23.5, 25.1, -999,
27.9, 28.8, 29.4, 28.7, 27.2, 25.6, 23.9, -999, 21.0, 19.8, 18.6, 17.9],
[-999, 17.4, 17.0, 16.7, 16.6, 17.0, 18.2, 19.9, 21.5, -999, 24.6, 26.0,
27.1, 27.8, 28.0, 28.3, 26.4, -999, 23.1, 21.7, 20.5, 19.4, 18.8, 18.1],
[18.3, 18.0, 17.8, 17.5, 17.6, -999, -999, 20.4, 22.9, 25.3, 27.6, 29.5,
31.0, 32.2, 32.9, 33.1, 32.4, 30.8, 28.7, 26.5, 24.6, 22.8, 21.3, 20.1],
[16.9, 16.5, 16.2, 16.0, 15.8, 16.1, 16.9, 18.0, 19.4, 20.8, 22.3, 23.6,
24.7, 26.2, 25.8, 25.1, 24.0, 22.6, 21.3, 20.2, 19.3, 18.5, 17.8, -999],
])
day = int(input())
limit = 25
# Напишите свой код ниже
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Данные и графики
4Преобразование данных
Изменение формы массивовОбъединение массивовСлучайные числаПовторение: симуляция броска кубика2Массивы NumPy
Создание массивовФорма и размерДиапазоны чиселИндексация и срезыПовторение: температурная сетка5Линейные графики и диаграммы рассеяния
Подписи и заголовкиДиаграммы рассеянияНесколько линий и легендыЦвета и маркерыФигуры и осиПовторение: шаги за неделю8Фильтрация и сортировка
Выбор строкФильтрация строкСортировка значенийНовые столбцыПовторение: лучшие товары3Математика массивов
Математика над целыми массивамиСводная статистикаСтатистика по осямТранслированиеБулевы маскиПовторение: результаты экзамена6Графики для данных
Столбчатые диаграммыГистограммыНесколько графиков в одномИзображения как массивыПовторение: отчёт об осадках9Группировка и очистка данных
Подсчёт значенийГруппировка данныхНесколько сводокПропущенные значенияПовторение: результаты опроса12Заключительные задания
Отчёт о продажахПоказания датчиковЦифры с первого взглядаИсследователь-пингвинПотренируйтесь самостоятельно: Онлайн-компилятор Python