Erstellen Sie Ihre eigene ufunc


So erstellen Sie Ihr eigenes ufunc

frompyfunc()Um Ihre eigene ufunc zu erstellen, müssen Sie eine Funktion definieren, wie Sie es bei normalen Funktionen in Python tun, und diese dann mit der Methode zu Ihrer NumPy-ufunc-Bibliothek hinzufügen .

Die frompyfunc()Methode akzeptiert die folgenden Argumente:

  1. function - der Name der Funktion.
  2. inputs - die Anzahl der Eingabeargumente (Arrays).
  3. outputs - die Anzahl der Ausgangsarrays.

Beispiel

Erstellen Sie Ihre eigene ufunc zum Hinzufügen:

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

Überprüfen Sie, ob eine Funktion eine ufunc ist

Überprüfen Sie den Typ einer Funktion, um festzustellen, ob es sich um eine ufunc handelt oder nicht.

Ein ufunc sollte zurückkehren <class 'numpy.ufunc'>.

Beispiel

Überprüfen Sie, ob eine Funktion eine ufunc ist:

import numpy as np

print(type(np.add))

Wenn es kein ufunc ist, gibt es einen anderen Typ zurück, wie diese integrierte NumPy-Funktion zum Verbinden von zwei oder mehr Arrays:

Beispiel

Überprüfen Sie den Typ einer anderen Funktion: concatenate():

import numpy as np

print(type(np.concatenate))

Wenn die Funktion überhaupt nicht erkannt wird, gibt sie einen Fehler zurück:

Beispiel

Überprüfen Sie den Typ von etwas, das nicht existiert. Dies wird einen Fehler erzeugen:

import numpy as np

print(type(np.blahblah))

Um zu testen, ob die Funktion ein ufunc in einer if-Anweisung ist, verwenden Sie den numpy.ufuncWert (oder np.ufuncwenn Sie np als Alias ​​für numpy verwenden):

Beispiel

Verwenden Sie eine if-Anweisung, um zu überprüfen, ob die Funktion eine ufunc ist oder nicht:

import numpy as np

if type(np.add) == np.ufunc:
  print('add is ufunc')
else:
  print('add is not ufunc')