NumPy uuncs


Wat zijn ufunc's?

ufuncs staat voor "Universal Functions" en het zijn NumPy-functies die op het ndarrayobject 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:

wherebooleaanse array of voorwaarde die bepaalt waar de bewerkingen moeten plaatsvinden.

dtypehet definiëren van het retourtype van elementen.

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