Crea tu propio ufunc


Cómo crear tu propio ufunc

Para crear su propio ufunc, debe definir una función, como lo hace con las funciones normales en Python, luego la agrega a su biblioteca NumPy ufunc con el frompyfunc()método.

El frompyfunc()método toma los siguientes argumentos:

  1. function- El nombre de la función.
  2. inputs- el número de argumentos de entrada (matrices).
  3. outputs- el número de matrices de salida.

Ejemplo

Cree su propio ufunc para agregar:

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

Comprobar si una función es ufunc

Compruebe el tipo de una función para comprobar si es ufunc o no.

Un ufunc debería regresar <class 'numpy.ufunc'>.

Ejemplo

Comprueba si una función es ufunc:

import numpy as np

print(type(np.add))

Si no es ufunc, devolverá otro tipo, como esta función NumPy incorporada para unir dos o más matrices:

Ejemplo

Compruebe el tipo de otra función: concatenar():

import numpy as np

print(type(np.concatenate))

Si la función no se reconoce en absoluto, devolverá un error:

Ejemplo

Comprobar el tipo de algo que no existe. Esto producirá un error:

import numpy as np

print(type(np.blahblah))

Para probar si la función es ufunc en una declaración if, use el numpy.ufuncvalor (o np.ufuncsi usa np como un alias para numpy):

Ejemplo

Use una declaración if para verificar si la función es ufunc o no:

import numpy as np

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