布尔掩码
本课属于 Coddy Machine Learning 学习旅程的“数据与图表”单元。第 14 课,共 60 课。
哪些手机需要充电?将数组中的每个值与一个数字进行比较,每个值都会得到 True 或 False。这个结果叫作布尔掩码:
把掩码放在方括号中以保留 True 值,或者对它求和来计数:
levels = np.array([80, 15, 42, 9, 67])
low = levels < 20
print(levels[low])
print(low.sum())这会打印:
[15 9]
2True 计为 1,False 计为 0。匹配并计数,无需循环。
用 &(两者都满足)或 |(满足其一)组合掩码,并将每个比较表达式放在括号中:(levels > 30) & (levels < 70)。
挑战
简单配送应用想要找出今天准时送达的订单:耗时在 low 到 high 分钟之间(包含两端)的配送。times 已准备好,程序会读取 low 和 high。打印:
On time:准时配送所用的时间,顺序与原来相同。On time count:准时配送的数量。Outside count:比low更快或比high更慢的配送数量。
对于 30 到 45 分钟的时间范围:
On time: [34 41 38 31 44]
On time count: 5
Outside count: 7亲手试试
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())
# 在下方编写你的代码
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
数据与图表中的所有课
自己练习: Python 在线编译器