在 NumPy 中對映函式

Muhammad Maisam Abbas 2023年1月30日
  1. 使用 numpy.vectorize() 函式對映 NumPy 中的函式
  2. 使用 Python 中的 lambda 關鍵字對映 NumPy 中的函式
在 NumPy 中對映函式

本教程將介紹在 Python 中將函式對映到 NumPy 陣列的方法。

使用 numpy.vectorize() 函式對映 NumPy 中的函式

numpy.vectorize() 函式 將函式對映到包含一系列物件(如 Python 中的陣列)的資料結構上。它依次將輸入函式應用於序列或陣列的每個元素。numpy.vectorize() 函式的返回型別由輸入函式決定。請參考以下程式碼示例。

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 陣列中。

使用 Python 中的 lambda 關鍵字對映 NumPy 中的函式

lambda 關鍵字 在 Python 中建立一個匿名函式。當我們只在程式碼中臨時需要一個函式時,匿名函式會很有幫助。我們還可以使用 lambda 函式將函式對映到 NumPy 陣列。我們可以將陣列傳遞給 lambda 函式以迭代地應用於每個陣列元素。

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 關鍵字建立了 lambda 函式 lfunc。然後我們通過將 array 傳遞給 lfunc 函式來將 lfunc 對映到 array。我們將結果儲存在 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