
518
付録
A
NumPy
:応用編
0.2817, 0.769 , 0.4789, 1.0072, 0.0929, 0.275 , 0.2289,
1.3529, 0.8864, 1.3934, 1.9658, 1.669 , 1.2464])
A.6.4
numpy.searchsorted
:ソート済みの配列内で要素を探す
searchsorted
を使うと、ソート済みの配列内で二分探索ができます。ソート済みの配列に対してこ
のメソッドを呼び出し、何らかの値を引数として与えると、その値がどの位置に入るべきかを探索して
位置のインデックスを返してくれます。
In [201]: arr = np.array([0, 1, 7, 12, 15])
In [202]: arr.searchsorted(9)
Out[202]: 3
引数に値の配列を指定することもできます。この場合は、それぞれの値が入るべき位置のインデッ
クスの配列が戻されます。
In [203]: arr.searchsorted([0, 8, 11, 16])
Out[203]: array([0, 3, 3, 5])
上の例で、
0
という要素に対して
searchsorted
が
0
を返したのに気付いたでしょうか。これは、デフォ
ルトの挙動では、等しい値がある場合はその値のグループの左端のインデックスを戻すためです。こ
の挙動を変えるには、
side
引数を指定します。
In [204]: arr = np.array([0, 0, 0, 1, 1, 1, ...