NumPy で関数をマップする

Muhammad Maisam Abbas 2023年1月30日
  1. numpy.vectorize() 関数を使用して NumPy の関数をマップする
  2. NumPy で Python の lambda キーワードを使用して関数をマッピングする
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 に保存しました。その後、arrayvfunc に渡し、結果を 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 を作成しました。次に、arraylfunc 関数に渡すことにより、lfuncarray にマップしました。結果を result 配列内に保存し、その中に値を出力しました。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

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