Menu
CoddyTech

Mặt nạ Boolean

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

Điện thoại nào cần sạc? So sánh một mảng với một số, mỗi giá trị sẽ cho kết quả True hoặc False. Kết quả đó là một mặt nạ boolean (boolean mask):

Năm mức pin 80, 15, 42, 9 và 67 dưới dạng các ô. Các ô 15 và 9 được tô sáng, mặt nạ bên dưới ghi False, True, False, True, False

Đặt mặt nạ trong dấu ngoặc vuông để giữ lại các giá trị True, hoặc tính tổng mặt nạ để đếm chúng:

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

Kết quả in ra là:

[15  9]
2

True được tính là 1 và False được tính là 0. So khớp và đếm, không cần vòng lặp.

Kết hợp các mặt nạ bằng & (cả hai) hoặc | (một trong hai), đặt mỗi phép so sánh trong ngoặc đơn: (levels > 30) & (levels < 70).

challenge icon

Thử thách

Dễ

Ứng dụng giao hàng muốn biết những đơn được giao đúng giờ hôm nay, tức là mất từ low đến high phút, tính cả hai mốc. times đã sẵn sàng, và chương trình đọc low và high. In ra:

  1. On time: các khoảng thời gian giao đúng giờ, theo thứ tự ban đầu.
  2. On time count: số lượng các khoảng thời gian đó.
  3. Outside count: số lượng các đơn giao nhanh hơn low hoặc chậm hơn high.

Với khoảng thời gian từ 30 đến 45 phút:

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

Tự làm thử

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())

# Viết code của bạn 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