どうも、ちょげ(@chogetarou)です。
Numpy配列の特定の要素のインデックス(index)を取得する方法を紹介します。
方法

Numpy配列の特定の要素のインデックス(index)を取得するには、numpy.where()を使います。
まず、numpyからwhere()を呼び出します。
numpy.where()の引数に、配列と特定の要素を「==」で比較した条件式を指定します。
そして、numpy.where()の結果のインデックス「0」にアクセスします。
#arr=対象のnumpy配列, item=要素
np.where(arr == item)[0]
上記のwhere()は、Numpy配列の指定した要素のインデックスを全て取得します。
もし、特定の要素のインデックスを最初の1つだけ取得したい場合は、where()の結果のインデックス「0」に2度アクセスします。
#特定の要素のインデックスを最初の1つだけ取得
np.where(arr == item)[0][0]
使用例
import numpy as np
nums = np.array(["one", "two", "three", "one", "four", "five"])
print(np.where(nums == "one")[0]) #oneのインデックスを全て取得
print(np.where(nums == "four")[0][0]) #fourのインデックスを1つだけ取得
出力:
[0 3]
4
コメント