やりたいこと
10未満は「0」、
10以上20未満は「1」、
20以上は「2」
のように、
値がどの範囲に入るかを知りたい。
方法
numpyのdigitize()関数を使います。
import numpy as np
範囲を作ります。
10未満、10以上20未満、20以上のグループに分けます。
bins = np.array([10, 20])
数値「0」はどのグループに入るか調べます。
inds = np.digitize(0, bins)
print(inds)
# => 0
数値「15」はどのグループに入るか調べます。
inds = np.digitize(15, bins)
print(inds)
# => 1
数値「25」はどのグループに入るか調べます。
inds = np.digitize(25, bins)
print(inds)
# => 25
数値の配列を渡して、複数の値をまとめて判定します。
x = np.array([0, 15, 25])
inds = np.digitize(x, bins)
print(inds)
# => [0 1 2]
今回のソースコードは次のようになります。
import numpy as np
bins = np.array([10, 20])
inds = np.digitize(0, bins)
print(inds)
# => 0
inds = np.digitize(15, bins)
print(inds)
# => 1
inds = np.digitize(25, bins)
print(inds)
# => 2
x = np.array([0, 15, 25])
inds = np.digitize(x, bins)
print(inds)
# => [0 1 2]