NumPy で関数をマップする
このチュートリアルでは、Python の NumPy 配列に関数をマッピングする方法を紹介します。
numpy.vectorize() 関数を使用して NumPy の関数をマップする
numpy.vectorize() 関数は、Python の配列などのオブジェクトのシーケンスを含むデータ構造に関数をマップします。シーケンスまたは配列の各要素に入力関数を連続して適用します。numpy.vectorize() 関数の return-type は、入力関数によって決定されます。次のコード例を参照してください。
import numpy as np
array = np.array([1, 2, 3, 4, 5])
def fun(e):
return e % 2
vfunc = np.vectorize(fun)
result = vfunc(array)
print(result)
出力:
[1 0 1 0 1]
最初に、np.array() 関数を使用して array を作成し、関数 fun を宣言しました。次に、fun 関数を np.vectorize() 関数に渡し、結果を vfunc に保存しました。その後、array を vfunc に渡し、結果を result 配列内に格納しました。
NumPy で Python の lambda キーワードを使用して関数をマッピングする
lambda キーワードは Python で無名関数を作成します。匿名関数は、コード内で一時的に関数が必要な場合に役立ちます。ラムダ関数を使用して、NumPy 配列に関数をマッピングすることもできます。配列をラムダ関数に渡して、各配列要素に繰り返し適用できます。
import numpy as np
array = np.array([1, 2, 3, 4, 5])
def lfunc(e):
return e % 2
result = lfunc(array)
print(result)
出力:
[1 0 1 0 1]
最初に、np.array() 関数を使用して array を作成し、lambda キーワードを使用してラムダ関数 lfunc を作成しました。次に、array を lfunc 関数に渡すことにより、lfunc を array にマップしました。結果を result 配列内に保存し、その中に値を出力しました。
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn