ブールマスク
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オンラインコンパイラ