NumPy uuncs
Wat zijn ufunc's?
ufuncs staat voor "Universal Functions" en het zijn NumPy-functies die op het ndarray
object werken.
Waarom ufunc's gebruiken?
ufuncs worden gebruikt om vectorisatie in NumPy te implementeren, wat veel sneller is dan het herhalen van elementen.
Ze bieden ook uitzendingen en aanvullende methoden zoals verminderen, accumuleren enz. Die zeer nuttig zijn voor berekeningen.
ufuncs nemen ook extra argumenten, zoals:
where
booleaanse array of voorwaarde die bepaalt waar de bewerkingen moeten plaatsvinden.
dtype
het definiëren van het retourtype van elementen.
out
output-array waar de geretourneerde waarde moet worden gekopieerd.
Wat is vectorisatie?
Het omzetten van iteratieve instructies in een op vectoren gebaseerde bewerking wordt vectorisatie genoemd.
Het is sneller omdat moderne CPU's zijn geoptimaliseerd voor dergelijke bewerkingen.
Voeg de elementen van twee lijsten toe
lijst 1: [1, 2, 3, 4]
lijst 2: [4, 5, 6, 7]
Een manier om dit te doen is door beide lijsten te herhalen en vervolgens alle elementen op te tellen.
Voorbeeld
Zonder ufunc kunnen we de ingebouwde zip()
methode van Python gebruiken:
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 heeft hier een ufunc voor, genaamd add(x, y)
die hetzelfde resultaat zal opleveren.
Voorbeeld
Met ufunc kunnen we de add()
functie gebruiken:
import numpy as np
x = [1, 2, 3, 4]
y = [4, 5, 6, 7]
z = np.add(x, y)
print(z)