Cómo optimizar las operaciones de matrices Numpy multidimensionales con Numexpr |  de Peng Qian |  octubre de 2023

Un estudio de caso del mundo real sobre optimización del rendimiento en Numpy

Cómo optimizar las operaciones de matrices Numpy multidimensionales con Numexpr.
Cómo optimizar las operaciones de matrices Numpy multidimensionales con Numexpr. Crédito de la foto: Creado por el autor, Canva.

Este es un artículo relativamente breve. En él, usaré un escenario del mundo real como ejemplo para explicar cómo usar Expresiones numéricas en matrices Numpy multidimensionales para lograr mejoras sustanciales en el rendimiento.

No hay muchos artículos que expliquen cómo usar Numexpr en matrices Numpy multidimensionales y cómo usar expresiones Numexpr, así que espero que este te ayude.

Recientemente, mientras revisaba algunos de mis trabajos anteriores, me topé con este fragmento de código:

def predict(X, w, b):
z = np.dot(X, w)
y_hat = sigmoid(z)
y_pred = np.zeros((y_hat.shape[0], 1))

for i in range(y_hat.shape[0]):
if y_hat[i, 0] < 0.5:
y_pred[i, 0] = 0
else:
y_pred[i, 0] = 1
return y_pred

Este código transforma los resultados de predicción de probabilidades a resultados de clasificación de 0 o 1 en el modelo de regresión logística del aprendizaje automático.

Pero cielos, ¿quién usaría un for loop iterar sobre Numpy ndarray?

Se puede prever que cuando los datos alcancen una determinada cantidad, no sólo ocuparán mucha memoria, sino que el rendimiento también será inferior.

Así es, la persona que escribió este código fui yo cuando era más joven.

Con sentido de responsabilidad, planeo reescribir este código con la biblioteca Numexpr hoy.

En el camino, te mostraré cómo usar Numexpr y Numexpr. where expresión en matrices Numpy multidimensionales para lograr mejoras significativas en el rendimiento.

Si no está familiarizado con el uso básico de Numexpr, puede consultar este artículo: