Menu
CoddyTech

ブールマスク

CoddyのMachine Learningジャーニー「データとプロット」セクションの一部。レッスン 14/60。

充電が必要なスマートフォンはどれでしょう?配列と数値を比較すると、それぞれの値が True または False で答えます。この答えがブールマスクです:

セルとして表示された5つのバッテリー残量80、15、42、9、67。セル15と9が強調表示され、その下のマスクはFalse、True、False、True、Falseと表示されている

Trueの値を保持するにはマスクを角括弧に入れ、数えるにはマスクを合計します。

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

これは次のように出力します:

[15  9]
2

Trueは1として、Falseは0として数えられます。一致するものを数えます。ループは不要です。

マスクは&(両方)または|(いずれか)で組み合わせ、各比較を括弧で囲みます:(levels > 30) & (levels < 70)。

challenge icon

チャレンジ

簡単

配達アプリでは、本日の時間どおりの配達、つまり low 分から high 分まで(両端を含む)の配達を知りたいと考えています。times は用意されており、プログラムは low と high を読み込みます。次を出力してください。

  1. On time: 時間どおりの配達時間を、元の順序で。
  2. On time count: その件数。
  3. 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())

# 以下にコードを書いてください
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

データとプロットのすべてのレッスン

自分で練習してみよう: Pythonオンラインコンパイラ