Una función universal (o ufunc) es una función que opera en arrays NumPy elemento por elemento. Ya comentamos que la vectorización es la capacidad de operar simultáneamente sobre todos los elementos de un array. Pues bien, las funciones universales son envoltorios "vectorizados" de funciones que esperan un número especificado de elementos de entrada y generan un determinado conjunto de elementos de salida. Un buen ejemplo de esto es el escenario en el que tenemos dos arrays de igual tamaño, a y b, y deseamos multiplicar los elementos de a por los de b por parejas:
En este ejemplo vemos cómo la función numpy.multiply ha recorrido los dos arrays a y b multiplicando sus elementos por parejas (1 y 2, 2 y 3, y 3 y 4).
En las próximas páginas revisaremos algunas de las funciones universales disponibles.