NumPy ufuncs
Cosa sono gli ufunc?
ufuncs sta per "Universal Functions" e sono funzioni NumPy che operano ndarray
sull'oggetto.
Perché usare ufunc?
ufuncs sono usati per implementare la vettorizzazione in NumPy che è molto più veloce dell'iterazione sugli elementi.
Forniscono anche la trasmissione e metodi aggiuntivi come ridurre, accumulare ecc. Che sono molto utili per il calcolo.
ufuncs accetta anche argomenti aggiuntivi, come:
where
matrice booleana o condizione che definisce dove devono essere eseguite le operazioni.
dtype
definire il tipo di restituzione degli elementi.
out
matrice di output in cui deve essere copiato il valore restituito.
Cos'è la vettorizzazione?
La conversione di istruzioni iterative in un'operazione basata su vettori è chiamata vettorizzazione.
È più veloce poiché le moderne CPU sono ottimizzate per tali operazioni.
Aggiungi gli elementi di due elenchi
elenco 1: [1, 2, 3, 4]
elenco 2: [4, 5, 6, 7]
Un modo per farlo è scorrere su entrambi gli elenchi e quindi sommare ogni elemento.
Esempio
Senza ufunc, possiamo usare il zip()
metodo integrato di Python:
x = [1, 2, 3, 4]
y = [4, 5, 6, 7]
z = []
for i, j in zip(x, y):
z.append(i + j)
print(z)
NumPy ha un ufunc per questo, chiamato add(x, y)
che produrrà lo stesso risultato.
Esempio
Con ufunc, possiamo usare la add()
funzione:
import numpy as np
x = [1, 2, 3, 4]
y = [4, 5, 6, 7]
z = np.add(x, y)
print(z)