NumPy ufuncs


Cosa sono gli ufunc?

ufuncs sta per "Universal Functions" e sono funzioni NumPy che operano ndarraysull'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:

wherematrice booleana o condizione che definisce dove devono essere eseguite le operazioni.

dtypedefinire il tipo di restituzione degli elementi.

outmatrice 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)