Mappa una funzione in NumPy

Muhammad Maisam Abbas 30 gennaio 2023
  1. Mappa una funzione in NumPy con la funzione numpy.vectorize()
  2. Mappa una funzione in NumPy con la parola chiave lambda in Python
Mappa una funzione in NumPy

Questo tutorial introdurrà i metodi per mappare una funzione su un array NumPy in Python.

Mappa una funzione in NumPy con la funzione numpy.vectorize()

La funzione numpy.vectorize() mappa le funzioni su strutture di dati che contengono una sequenza di oggetti come gli array in Python. Applica successivamente la funzione di input su ciascun elemento della sequenza o dell’array. Il tipo di ritorno della funzione numpy.vectorize() è determinato dalla funzione di input. Vedere il seguente esempio di codice.

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)

Produzione:

[1 0 1 0 1]

Per prima cosa abbiamo creato l’array con la funzione np.array() e abbiamo dichiarato la funzione fun. Quindi abbiamo passato la funzione fun alla funzione np.vectorize() e memorizzato il risultato in vfunc. Successivamente, abbiamo passato l’array a vfunc e archiviato il risultato all’interno dell’array result.

Mappa una funzione in NumPy con la parola chiave lambda in Python

La parola chiave lambda crea una funzione anonima in Python. Le funzioni anonime sono utili quando abbiamo solo bisogno di una funzione temporaneamente nel nostro codice. Possiamo anche usare le funzioni lambda per mappare una funzione su un array NumPy. Possiamo passare un array alla funzione lambda da applicare in modo iterativo su ciascun elemento dell’array.

import numpy as np

array = np.array([1, 2, 3, 4, 5])


def lfunc(e):
    return e % 2


result = lfunc(array)
print(result)

Produzione:

[1 0 1 0 1]

Per prima cosa abbiamo creato l’array con la funzione np.array() e la funzione lambda lfunc con la parola chiave lambda. Abbiamo quindi mappato lfunc su array passando array alla funzione lfunc. Abbiamo salvato il risultato all’interno dell’array result e stampato i valori al suo interno.

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