センサーの測定値
CoddyのMachine Learningジャーニー「データとプロット」セクションの一部。レッスン 58/60。
センサーは、0時(午前0時)から23時まで、毎時間サーバールームの温度を記録します。測定に失敗した場合は、代わりに-999を書き込みます。
技術者は、障害を除外して各日の合計を出し、月曜日(1日目)のように描画したいと考えています。
室温が25 Cを超える場合は、部屋に注意が必要です。
チャレンジ
難しいスターターには、weekに4日分の測定値が1日1行で格納されており、1から4までの日番号を読み込みます。
- その日の測定値のうち、取得に失敗した数を出力します。
- 有効な測定値の平均を
np.roundで小数第1位に丸めて出力し、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
# 0時から23時までのサーバールームの温度 (C)。1行が1日分を表し、-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
# 以下にコードを書いてください
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
データとプロットのすべてのレッスン
自分で練習してみよう: Pythonオンラインコンパイラ