Menu
CoddyTech

Odczyty z czujników

Część sekcji Dane i wykresy ścieżki Machine Learning w Coddy. Lekcja 58 z 60.

Czujnik zapisuje temperaturę w serwerowni co godzinę, od godziny 0 (północ) do 23. Gdy odczyt się nie powiedzie, zamiast niego zapisuje -999.

Technik chce, aby każdy dzień był podsumowany bez uwzględniania awarii i przedstawiony tak jak poniedziałek (dzień 1):

Wykres liniowy zatytułowany Temperatura w serwerowni: od około 17 C w nocy linia wznosi się do szczytu 29.4 C o godzinie 14, a następnie opada do 18 C przed północą

Przy temperaturze powyżej 25 C pomieszczenie wymaga uwagi.

challenge icon

Wyzwanie

Trudny

Dane początkowe zawierają odczyty z czterech dni w week, po jednym wierszu na dzień, i odczytują numer dnia z zakresu od 1 do 4.

  1. Wypisz, ile odczytów z danego dnia nie powiodło się.
  2. Wypisz średnią z poprawnych odczytów, zaokrągloną do 1 miejsca po przecinku za pomocą np.round, oraz liczbę odczytów powyżej limit.
  3. Wypisz najcieplejszą godzinę i jej odczyt.
  4. Narysuj poprawne odczyty względem godzin, używając postaci fig, ax, z tytułem Server Room Temperature oraz etykietami Hour i Temperature (C).

Dla dnia 1 cały wynik wygląda następująco:

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]

Spróbuj swoich sił

import numpy as np
import matplotlib.pyplot as plt

# Temperatura w serwerowni (C) w godzinach od 0 do 23, jeden wiersz na dzień; -999 oznacza nieudany pomiar
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

# Wpisz swój kod poniżej
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Dane i wykresy

Poćwicz samodzielnie: Kompilator Python online