どうも、ちょげ(@chogetarou)です。
配列(array)の特定の要素のインデックス(index)を取得する方法を紹介します。
リストもしくはArray.arrayの場合

リストもしくはArray.arrayの場合は、index()を使います。
まず、リストもしくはArray.arrayからindex()を呼び出します。
そして、index()の引数に要素を指定します。
#arr=対象のリストもしくはArray.array, item=要素
result = arr.index(item)
上記のindex()は、リストもしくはArray.arrayのindex()の引数に指定した要素のインデックス(index)を取得します。
使用例
nums = ["one", "two", "three", "four", "five"]
print(nums.index("one"))
print(nums.index("four"))
出力:
0
3
使用例2
import array
nums = array.array('i', [10, 3, 5, 8, 1])
print(nums.index(10))
print(nums.index(8))
出力:
0
3
Numpy配列の場合
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
まとめ
配列(array)の特定の要素のインデックス(index)を取得する方法は、次の2つです。
- リストもしくはArray.arrayの場合
result = arr.index(item)
- Numpy配列の場合
np.where(arr == item)[0]
コメント