Menu
CoddyTech

Số liệu cảm biến

Thuộc phần Dữ liệu và biểu đồ trong hành trình Machine Learning của Coddy. Bài học 58 trên 60.

Cảm biến ghi lại nhiệt độ phòng máy chủ mỗi giờ, từ giờ 0 (nửa đêm) đến giờ 23. Khi không đọc được số liệu, cảm biến ghi -999 thay thế.

Kỹ thuật viên muốn tính tổng từng ngày sau khi loại bỏ các lần đo lỗi, rồi vẽ biểu đồ giống như biểu đồ của thứ Hai (ngày 1):

Biểu đồ đường có tiêu đề Nhiệt độ phòng máy chủ: từ khoảng 17 C vào ban đêm, đường biểu đồ tăng lên mức cao nhất là 29.4 C vào giờ thứ 14, rồi giảm xuống còn 18 C vào lúc nửa đêm

Trên 25 C, căn phòng cần được chú ý.

challenge icon

Thử thách

Khó

Phần khởi tạo lưu các số đo của bốn ngày trong week, mỗi hàng ứng với một ngày, rồi đọc số ngày từ 1 đến 4.

  1. In ra số lượng số đo bị lỗi trong ngày đó.
  2. In ra giá trị trung bình của các số đo hợp lệ, làm tròn đến 1 chữ số thập phân bằng np.round, và số lượng số đo lớn hơn limit.
  3. In ra giờ nóng nhất và số đo tại giờ đó.
  4. Vẽ các số đo hợp lệ theo giờ bằng dạng fig, ax, đặt tiêu đề Server Room Temperature, nhãn trục là Hour và Temperature (C).

Với ngày 1, toàn bộ đầu ra là:

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]

Tự làm thử

import numpy as np
import matplotlib.pyplot as plt

# Nhiệt độ phòng máy chủ (C) từ giờ 0 đến giờ 23, mỗi hàng ứng với một ngày; -999 nghĩa là không đo được nhiệt độ
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

# Viết code bên dưới
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Dữ liệu và biểu đồ

Tự luyện tập: Trình biên dịch Python online