Créez votre propre ufunc


Comment créer votre propre ufunc

Pour créer votre propre ufunc, vous devez définir une fonction, comme vous le faites avec les fonctions normales en Python, puis vous l'ajoutez à votre bibliothèque ufunc NumPy avec la frompyfunc()méthode.

La frompyfunc()méthode prend les arguments suivants :

  1. function- le nom de la fonction.
  2. inputs- le nombre d'arguments d'entrée (tableaux).
  3. outputs- le nombre de tableaux de sortie.

Exemple

Créez votre propre ufunc pour l'ajout :

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

Vérifier si une fonction est une ufunc

Vérifiez le type d'une fonction pour vérifier si c'est un ufunc ou non.

Un ufunc devrait retourner <class 'numpy.ufunc'>.

Exemple

Vérifier si une fonction est une ufunc :

import numpy as np

print(type(np.add))

S'il ne s'agit pas d'un ufunc, il renverra un autre type, comme cette fonction NumPy intégrée pour joindre deux tableaux ou plus :

Exemple

Vérifiez le type d'une autre fonction : concatenate() :

import numpy as np

print(type(np.concatenate))

Si la fonction n'est pas du tout reconnue, elle renverra une erreur :

Exemple

Vérifiez le type de quelque chose qui n'existe pas. Cela produira une erreur :

import numpy as np

print(type(np.blahblah))

Pour tester si la fonction est un ufunc dans une instruction if, utilisez la numpy.ufuncvaleur (ou np.ufuncsi vous utilisez np comme alias pour numpy) :

Exemple

Utilisez une instruction if pour vérifier si la fonction est une ufunc ou non :

import numpy as np

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