Python

Funciones lambda de Python

Las funciones lambda, a las que también se les conoce como funciones anónimas, es una forma de definir funciones en línea. No es una técnica propia de Python ya que se encuentran disponibles en muchos lenguajes de programación. Al definir las funciones en una línea estas se pueden aplicar a un conjunto de datos y unir posteriormente lo resultados. No siendo necesario asignar un identificador a la función, de ahí el nombre de funciones anónimas. En esta entrada se realizará una descripción detallada de las Funciones lambda de Python y explicando cómo usarlas.

Siendo las funciones lambda clave a la hora de trabajar con el paradigma de programación funcional el Python.

Sintaxis de las funciones lambda de Python

La sintaxis de las funciones lambda de Python es bastante sencilla. Se utiliza la palabra reservada lambda seguida de los argumentos, posteriormente con se separa mediante dos puntos la expresión. Las funciones lambda pueden tener tantos argumentos como sean necesarios, pero solamente puede tener una expresión. Por ejemplo, se puede implementar el producto de dos valores con:

product = lambda x,y : x * y

en donde x e y son los argumentos y x * y es la expresión. La función se ha asignado a una variable, algo que no es necesario, pero así se puede utilizar como si fuese una función normar creada con def.

product(2, 3)  # Retorna 6

Diferencias entre las funciones lambda y las definidas con def

En Python las funciones creadas mediante la palabra lambda también se pueden crear utilizando def. El ejemplo anterior, la función que multiplica dos números, se puede definir también de forma tradicional con def.

Aunque aparentemente se ha obtenido el mismo resultado existen ciertas diferencias entre ambos métodos que es necesario tener en cuenta.

  • Al utilizar la palabra clave lambda se crea un objeto función sin crearse al mismo tiempo un nombre en el espacio de nombres. Nombre que si se crea al definir la función con def.
  • Las funciones lambda se crea en una única línea de código, por lo que son adecuadas cuando se desea minimizar el número de estas.
  • Para los usuarios noveles de Python las funciones lambda son generalmente menos legibles que las tradicionales.
  • En el caso de que se deseen una función lambda es necesario asignarla a una variable. Ya que, si no es así, al carecer de identificador, solamente se podrá utilizar en la línea donde se defina.

Ejemplos de uso de funciones lambda de Python

Las funciones lambda son claves en programación funcional. Se puede utilizar para aplicar una función a todo un DataFrame con el método apply(). Evitando así la necesidad de operar con bucles. Por ejemplo, si se crea un DataFrame aleatorio se le puede añadir a cada elemento uno solamente con una línea de código.

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randint(0, 100, size=(4, 2)), columns=list('AB'))
    A   B
0  81  53
1  40  35
2  27  46
3  86  49
print(df.apply(lambda x: x + 1))
    A   B
0  82  54
1  41  36
2  28  47
3  87  50

Conclusiones

En esta entrada se ha visto el fundamento de las funciones lambda de Python. Una herramienta muy útil para conseguir un código más compacto. Además, son clave para poder trabajar con el paradigma de programación funcional en Python de una forma eficiente.

Imágenes: Pixabay (Michael Schwarzenberger)

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez

Recent Posts

Por Qué las Contraseñas Largas son más Seguras que las Complejas

"Tu contraseña debe tener al menos 8 caracteres, una mayúscula, un número y un símbolo…

1 día ago

Gini, KS y AUC: Cómo Medir la Calidad de un Modelo de Credit Scoring

Cuando un analista de riesgo presenta un nuevo scorecard ante el comité de dirección, la…

3 días ago

Curiosidad: De dónde vienen foo, bar y foobar

Si revisáis código o documentación de otros programadores, tarde o temprano os toparéis con dos…

1 semana ago

BG/NBD + Gamma/Gamma: el modelo probabilístico para CLV en compras continuas

Los dos artículos anteriores cubrieron el CLV clásico —una fórmula útil pero que trata a…

1 semana ago

Errores habituales al trabajar con DataFrames grandes en Pandas (y cómo evitarlos)

Hay un momento muy concreto en la vida de casi todo análisis: el código que…

2 semanas ago

Champion vs Challenger: Cómo los Bancos Validan Modelos Nuevos antes de Ponerlos en Producción

Has construido un nuevo modelo de credit scoring. Las métricas de validación son mejores que…

2 semanas ago

This website uses cookies.