Maak je eigen ufunc
Hoe maak je je eigen ufunc
Om je eigen ufunc te maken, moet je een functie definiëren, zoals je doet met normale functies in Python, en dan voeg je deze toe aan je NumPy ufunc-bibliotheek met de frompyfunc()
methode.
De frompyfunc()
methode heeft de volgende argumenten:
function
- de naam van de functie.inputs
- het aantal invoerargumenten (arrays).outputs
- het aantal uitvoerarrays.
Voorbeeld
Maak je eigen ufunc voor toevoeging:
import numpy as np
def myadd(x, y):
return x+y
myadd = np.frompyfunc(myadd, 2, 1)
print(myadd([1, 2,
3, 4], [5, 6, 7, 8]))
Controleer of een functie een ufunc is
Controleer het type van een functie om te controleren of het een ufunc is of niet.
Een ufunc moet terugkeren <class 'numpy.ufunc'>
.
Voorbeeld
Controleer of een functie een uunc is:
import numpy as np
print(type(np.add))
Als het geen ufunc is, retourneert het een ander type, zoals deze ingebouwde NumPy-functie voor het samenvoegen van twee of meer arrays:
Voorbeeld
Controleer het type van een andere functie: concatenate():
import numpy as np
print(type(np.concatenate))
Als de functie helemaal niet wordt herkend, wordt een fout geretourneerd:
Voorbeeld
Controleer het type van iets dat niet bestaat. Dit levert een fout op:
import numpy as np
print(type(np.blahblah))
Om te testen of de functie een ufunc is in een if-statement, gebruik je de numpy.ufunc
waarde (of np.ufunc
als je np gebruikt als een alias voor numpy):
Voorbeeld
Gebruik een if-statement om te controleren of de functie een ufunc is of niet:
import numpy as np
if type(np.add) == np.ufunc:
print('add is ufunc')
else:
print('add is not ufunc')