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 :
function
- le nom de la fonction.inputs
- le nombre d'arguments d'entrée (tableaux).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.ufunc
valeur (ou np.ufunc
si 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')