在 NumPy 中對映函式

Muhammad Maisam Abbas 2023年1月30日 NumPy
  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 陣列中並列印其中的值。

Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe
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