NumPy ufuncs


¿Qué son las ufunciones?

ufuncs significa "Funciones universales" y son funciones NumPy que operan en el ndarrayobjeto.

¿Por qué usar ufuncs?

ufuncs se utilizan para implementar la vectorización en NumPy, que es mucho más rápido que iterar sobre elementos.

También proporcionan difusión y métodos adicionales como reducir, acumular, etc. que son muy útiles para el cálculo.

ufuncs también toma argumentos adicionales, como:

where matriz booleana o condición que define dónde deben tener lugar las operaciones.

dtype definiendo el tipo de retorno de los elementos.

out matriz de salida donde se debe copiar el valor de retorno.


¿Qué es la Vectorización?

La conversión de declaraciones iterativas en una operación basada en vectores se denomina vectorización.

Es más rápido ya que las CPU modernas están optimizadas para este tipo de operaciones.

Agregar los elementos de dos listas

lista 1: [1, 2, 3, 4]

lista 2: [4, 5, 6, 7]

Una forma de hacerlo es iterar sobre ambas listas y luego sumar cada elemento.

Ejemplo

Sin ufunc, podemos usar el zip()método integrado de Python:

x = [1, 2, 3, 4]
y = [4, 5, 6, 7]
z = []

for i, j in zip(x, y):
  z.append(i + j)
print(z)

NumPy tiene un ufunc para esto, llamado add(x, y) que producirá el mismo resultado.

Ejemplo

Con ufunc, podemos usar la add()función:

import numpy as np

x = [1, 2, 3, 4]
y = [4, 5, 6, 7]
z = np.add(x, y)

print(z)