NumPy 配列で要素の最初のインデックスを見つける

Manav Narula 2023年1月30日
  1. where() 関数を使用して、NumPy 配列内の要素の最初のインデックスを検索する
  2. nonzero() 関数を使用して、NumPy 配列内の要素の最初のインデックスを検索する
  3. argmax() 関数を使用して、NumPy 配列内の要素の最初のインデックスを検索する
  4. index() 関数を使用して、NumPy 配列内の要素の最初のインデックスを検索する
NumPy 配列で要素の最初のインデックスを見つける

このチュートリアルでは、numpy 配列内の要素の最初のインデックスを見つける方法について説明します。

where() 関数を使用して、NumPy 配列内の要素の最初のインデックスを検索する

numpy モジュールの where() 関数は、いくつかの条件を満たす要素のインデックスを含む配列を返すために使用されます。条件は関数内で指定されます。

以下に示すように、これを使用して、配列内の特定の値の最初のインデックスを見つけることができます。

a = np.array([7, 8, 9, 5, 2, 1, 5, 6, 1])

print(np.where(a == 1)[0][0])

出力:

5

nonzero() 関数を使用して、NumPy 配列内の要素の最初のインデックスを検索する

nonzero() 関数は、numpy 配列内のすべての非ゼロ要素のインデックスを返します。多次元配列の場合、複数の配列のタプルを返します。

where() 関数と同様に、条件を指定して、特定の要素の位置を返すこともできます。

例えば、

a = np.array([7, 8, 9, 5, 2, 1, 5, 6, 1])

print(np.nonzero(a == 1)[0][0])

出力:

5

最も基本的な目的では、where() 関数と nonzero() 関数は似ているように見えます。ある条件が True の場合は配列 a から、条件が False の場合は配列 b の要素を選択する場合は、where() 関数で違いが生じます。

argmax() 関数を使用して、NumPy 配列内の要素の最初のインデックスを検索する

argmax() は、配列内の最大要素のインデックスを検索します。関数で等式条件を指定し、必要な要素のインデックスを見つけることもできます。

例えば、

a = np.array([7, 8, 9, 5, 2, 1, 5, 6, 1])

print(np.argmax(a == 1))

出力:

5

index() 関数を使用して、NumPy 配列内の要素の最初のインデックスを検索する

このメソッドでは、最初に tolist() 関数を使用して配列をリストに変換します。次に、index() 関数を使用します。この関数は、指定された要素の位置を返します。

次のコードはこれを実装しています。

a = np.array([7, 8, 9, 5, 2, 1, 5, 6, 1])

print(a.tolist().index(1))

出力:

5
著者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn