NumPy ufuncs
¿Qué son las ufunciones?
ufuncs significa "Funciones universales" y son funciones NumPy que operan en el ndarray
objeto.
¿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)