[Python]Numpy配列の要素をインデックス付きでループするには?

python

どうも、ちょげ(@chogetarou)です。

Numpy配列の要素をインデックス(index)付きでループする方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

1次元の場合

Numpy配列の要素をインデックス(index)付きでループするには、enumerate()を使います。

まず、for文のinの左辺に、ループ変数をカンマ区切りで2つ指定します。

inの右辺に、enumerate()を指定し、enumerate()の引数に対象のNumpy配列を指定します。

そして、for文のループ処理を指定します。

ループ処理では、1つ目のループ変数でNumpy配列のインデックス、2つ目で要素を取得します。

#arr=対象のNumpy配列
for index, item in enumerate(arr):
    #ループ処理
    #ループ変数「index」でインデックス、「item」で要素を取得

上記のfor文は、Numpy配列の要素をインデックス付きでループします。

多次元の場合

もし、Numpy配列が多次元の場合は、numpy.ndenumerate()を使います。

まず、for文のinの左辺に、ループ変数をカンマ区切りで2つ指定します。

inの右辺に、numpy.ndenumerate()を指定し、numpy.ndenumerate()の引数に対象のNumpy配列を指定します。

そして、for文のループ処理を指定します。

ループ処理では、1つ目のループ変数でNumpy配列のインデックス、2つ目で要素を取得します。

#arr=対象のNumpy配列
for index, item in np.ndenumerate(arr):
    #ループ処理
    #ループ変数「index」でインデックス、「item」で要素を取得

上記のfor文は、多次元のNumpy配列の要素をインデックス付きでループします。

スポンサーリンク

使用例

1次元の場合

import numpy as np

nums = np.array([1, 2, 3, 4, 5, 6])

for index, item in enumerate(nums):
    print("インデックス", index, "は", item)
出力:
インデックス 0 は 1
インデックス 1 は 2
インデックス 2 は 3
インデックス 3 は 4
インデックス 4 は 5
インデックス 5 は 6

2次元の場合

import numpy as np

nums = np.array([[1, 2, 3], [4, 5, 6]])

for index, item in np.ndenumerate(nums):
    print("インデックス", index, "は", item)
出力:
インデックス (0, 0) は 1
インデックス (0, 1) は 2
インデックス (0, 2) は 3
インデックス (1, 0) は 4
インデックス (1, 1) は 5
インデックス (1, 2) は 6

コメント

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