[Python]配列の特定の要素のインデックスを取得するには?

python

どうも、ちょげ(@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)を取得します。

index()の引数に指定した要素が存在しない場合、ValueErrorが発生します。

使用例

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]

コメント

タイトルとURLをコピーしました