[Python]Numpy配列を先頭から1つ飛ばしでループするには?

python

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

Numpy配列(array)を先頭から1つ飛ばしでループする方法を紹介します。

スポンサーリンク

方法

Numpy配列(array)を先頭から1つ飛ばしでループする方法は、2つあります。

インデックス

ひとつは、インデックスを1つ飛ばしでループする方法です。

まず、for文のinの左辺にループ変数、右辺にrange()を指定します。

range()の第1引数に「0」、第2引数にNumpy配列(array)の要素数、第3引数に「2」を指定します。

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

ループ変数で、Numpy配列(array)のインデックスを取得します。

#arr=対象のNumpy配列
for i in range(0, len(arr), 2):
    #ループ処理
    #ループ変数でインデックスを取得

上記のfor文は、先頭から1つ飛ばしでNumpy配列(array)のインデックスをループします。

使用例

import numpy as np

nums = np.array(["one", "two", "three", "four", "five", "six", "seven", "eight"])

for i in range(0, len(nums), 2):
    print(i, ":", nums[i])
出力:
0 : one
2 : three
4 : five
6 : seven

もうひとつは、値を1つ飛ばしでループする方法です。

まず、for文のinの左辺にループ変数、右辺にNumpy配列(array)名と[::2]を指定します。

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

ループ変数で、Numpy配列(array)の要素を取得します。

#arr=対象のNumpy配列
for item in arr[::2]:
    #ループ処理
    #ループ変数で要素を取得

上記のfor文は、対象のNumpy配列(array)を先頭から1つ飛ばしでループします。

使用例

import numpy as np

nums = np.array(["one", "two", "three", "four", "five", "six", "seven", "eight"])

for item in nums[::2]:
    print(item)
出力:
one
three
five
seven

まとめ

Numpy配列(array)を先頭から1つ飛ばしでループする方法は、次の2つです。

  • インデックスを1つ飛ばしでループする方法
    for i in range(0, len(arr), 2): #ループ処理
  • 値を1つ飛ばしでループする方法
    for i in arr[::2]: #ループ処理

コメント

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