NumPy 配列の検索

配列を検索

配列内で特定の値を検索(検索)し、一致するインデックスを返すことができます。

配列を検索するには、 where() 方法。

インスタンス

値 4 のインデックスを検索:

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 4, 4])
x = np.where(arr == 4)
print(x)

インスタンスを実行する

上記の例では、タプルを返します:(array([3, 5, 6],)

これは値 4 がインデックス 3、5、および 6 に現れることを意味します。

インスタンス

偶数値のインデックスを検索:

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
x = np.where(arr%2 == 0)
print(x)

インスタンスを実行する

インスタンス

奇数値のインデックスを検索:

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
x = np.where(arr%2 == 1)
print(x)

インスタンスを実行する

検索並び替え

名前が searchsorted() の方法、この方法は配列中で二進検索を実行し、指定された値をその順序を維持するために挿入する索引を返します。

仮定 searchsorted() このメソッドは配列をソートするために使用されます。

インスタンス

値 7 を挿入するべき場所のインデックスを検索する:

import numpy as np
arr = np.array([6, 7, 8, 9])
x = np.searchsorted(arr, 7)
print(x)

インスタンスを実行する

例説明:ソート順を保つために、インデックス 1 に数字 7 を挿入する必要があります。

このメソッドは左から検索を開始し、数字 7 が次の値よりも大きくなる最初のインデックスを返します。

右側から検索する

デフォルトでは、最左端のインデックスが返されますが、指定することができます。 side='right'最右端のインデックスを返すために。

インスタンス

値 7 を挿入するべき場所のインデックスを右から検索する:

import numpy as np
arr = np.array([6, 7, 8, 9])
x = np.searchsorted(arr, 7, side='right')
print(x)

インスタンスを実行する

例説明:ソート順を保つために、インデックス 2 に数字 7 を挿入する必要があります。

このメソッドは右から検索を開始し、数字 7 が次の値よりも小さくなる最初のインデックスを返します。

複数の値

複数の値を検索するには、指定された値を持つ配列を使用してください。

インスタンス

値 2、4、6 を挿入するべき場所のインデックスを検索する:

import numpy as np
arr = np.array([1, 3, 5, 7])
x = np.searchsorted(arr, [2, 4, 6])
print(x)

インスタンスを実行する

返り値は配列です:[1 2 3] 3つの索引を含んでおり、元の配列に2、4、6を順序を保つために挿入します。