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:

  1. function - de naam van de functie.
  2. inputs - het aantal invoerargumenten (arrays).
  3. 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.ufuncwaarde (of np.ufuncals 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')