Python で Numpy 配列の行を反復処理する
-
ネストされた
for
ループを使用して、Python で Numpy 配列の行を反復処理する -
for
ループとflatten()
関数を使用して、Python で Numpy 配列の行を反復処理する -
apply_along_axis()
関数を使用して、Python で Numpy 配列の行を反復処理する
Python は主に NumPy
ライブラリを使用して、コード内で配列を実装できるようにします。 これらの配列は n 次元にすることができます。 配列の要素を反復処理することは、プログラマーが配列を実装する際に遭遇する数少ないことの 1つです。
このチュートリアルでは、Python で NumPy
配列の行を反復処理する方法を示します。
行と列の概念は、1 次元配列には存在しません。 したがって、少なくとも 2 次元の配列について説明します。 この記事のメソッドと実装のほとんどは、2 次元配列で実行されます。
ネストされた for
ループを使用して、Python で Numpy 配列の行を反復処理する
単一行の要素を反復するには、for
ループだけを利用できる場合があります。 ただし、NumPy
配列の複数の行を反復するには、for
ループをネストする必要があります。
作業は簡単で、コードはネストされた for
ループを使用して、配列のすべての要素にアクセスし、行単位で繰り返し処理します。
次のコードは、ネストされた for
ループを使用して、Python で NumPy
配列の行を反復処理します。
import numpy as np
x = np.matrix([[21, 22, 23], [24, 25, 26], [27, 28, 29]])
for row in x:
print(str(row))
上記のコードは、次の出力を提供します。
[[21 22 23]]
[[24 25 26]]
[[27 28 29]]
ここでは、print
コマンドを使用してすべての行を印刷しました。 詳細が示されている場合は、NumPy
配列の行に対して任意の関数を実装することもできます。
for
ループと flatten()
関数を使用して、Python で Numpy 配列の行を反復処理する
for
ループをネストする代わりに、flatten()
関数を使用して Python で NumPy
配列の行を反復処理する別のルートを取ることができます。 flatten()
関数は、2 次元配列を 1 次元配列に変換できます。これにより、プログラム内で for
ループを 1 回適用するだけで、必要な結果を得ることができます。
次のコードは、for
ループと flatten()
関数を使用して、Python で NumPy
配列の行を反復処理します。
import numpy as np
x = np.matrix([[21, 22, 23], [24, 25, 26], [27, 28, 29]])
for cell in x.flatten():
print(cell, end=" ")
上記のコードは、次の出力を提供します。
[[21 22 23 24 25 26 27 28 29]]
apply_along_axis()
関数を使用して、Python で Numpy 配列の行を反復処理する
NumPy
ライブラリは、プログラマが指定した任意の軸に沿って配列の要素に関数を適用できる NumPy.apply_along_axis()
関数を提供します。 apply_along_axis()
関数は単純な構文を持ち、プログラマーが実装する必要がある関数、指定された軸、実装が必要な配列を受け取ります。
次のコードは、apply_along_axis()
関数を使用して、Python で NumPy
配列の行を反復処理します。
import numpy as np
x = np.matrix([[21, 22, 23], [24, 25, 26], [27, 28, 29]])
def myfunction(a):
return a
print(np.apply_along_axis(myfunction, axis=1, arr=x))
上記のコードは、次の出力を提供します。
[[21 22 23]
[24 25 26]
[27 28 29]]
Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.
LinkedIn