Introducción
Para los bucles son la antítesis de la programación eficiente. Siguen siendo necesarios y son los primeros bucles condicionales que se enseñan a Principiantes de Python pero en mi opinión, dejan mucho que desear.
Estas por los bucles pueden ser engorrosos y pueden hacer que nuestro código Python sea voluminoso y desordenado. Pero espera, ¿cuál es la solución alternativa? Funciones lambda en Python!
Las funciones Lambda ofrecen un doble impulso a un científico de datos. Puede escribir un código Python más ordenado y acelerar sus tareas de aprendizaje automático. El truco radica en dominar las funciones lambda y aquí es donde los principiantes pueden tropezar.
Inicialmente, también encontré las funciones lambda difíciles de entender. Son de corta duración, pero pueden parecer confusos como recién llegados. Pero una vez que entendí cómo usarlos en Pitón, Los encontré muy fáciles y poderosos. Y estoy seguro de que tú también lo harás al final de este tutorial.
Entonces, en este artículo, aprenderá sobre el poder de las funciones lambda en Python y cómo usarlas. ¡Vamos a empezar!
Nota: ¿Nuevo en Python? Recomiendo encarecidamente consultar los cursos gratuitos a continuación para ponerse al día:
¿Qué son las funciones Lambda?
Una función lambda es una función pequeña que contiene una sola expresión. Las funciones Lambda también pueden actuar como funciones anónimas donde no requieren ningún nombre. Son muy útiles cuando tenemos que realizar pequeñas tareas con menos código.
También podemos usar funciones lambda cuando tenemos que pasar una función pequeña a otra función. No se preocupe, cubriremos esto en detalle pronto cuando veamos cómo usar funciones lambda en Python.
Las funciones lambda fueron introducidas por primera vez por Alonzo Church en la década de 1930. El Sr. Church es bien conocido por el cálculo lambda y la Tesis de Church-Turing.
Las funciones Lambda son útiles y se usan en muchos lenguajes de programación, pero aquí nos centraremos en usarlas en Python. En Python, las funciones lambda tienen la siguiente sintaxis:
Las funciones lambda constan de tres partes:
- Palabra clave
- Variable / argumento enlazado, y
- Cuerpo o expresión
La palabra clave es obligatoria y debe ser un lambda, mientras que los argumentos y el cuerpo pueden cambiar según los requisitos. Debe preguntarse por qué debería optar por funciones lambda cuando tiene otras funciones regulares. Pregunta justa, permítanme ampliar esto.
Comparación de funciones de Lamba con funciones regulares
Las funciones lambda se definen mediante la palabra clave lambda. Pueden tener cualquier número de argumentos, pero solo una expresión. Una función lambda no puede contener declaraciones y devuelve un objeto de función que se puede asignar a cualquier variableEn estadística y matemáticas, una "variable" es un símbolo que representa un valor que puede cambiar o variar. Existen diferentes tipos de variables, como las cualitativas, que describen características no numéricas, y las cuantitativas, que representan cantidades numéricas. Las variables son fundamentales en experimentos y estudios, ya que permiten analizar relaciones y patrones entre diferentes elementos, facilitando la comprensión de fenómenos complejos..... Generalmente se utilizan para expresiones de una línea.
Las funciones regulares se crean utilizando el def palabra clave. Pueden tener cualquier número de argumentos y cualquier número de expresiones. Pueden contener cualquier declaración y generalmente se usan para grandes bloques de código.
IIFE que utilizan funciones lambda
Los IIFE son expresiones de función invocadas inmediatamente. Estas son funciones que se ejecutan tan pronto como se crean. Los IIFE no requieren una llamada explícita para invocar la función. En Python, los IIFE se pueden crear utilizando la función lambda.
Aquí, he creado un IIFE que devuelve el cubo de un número:
(lambda x: x*x*x)(10)
¡Impresionante!
Aplicación de funciones Lambda con diferentes funciones
¡Es hora de saltar a Python! Encienda su Jupyter Notebook y pongámonos manos a la obra.
Aquí, he creado un conjunto de datos aleatorio que contiene información sobre una familia de 5 personas con su identificación, nombres, edades e ingresos por mes. Usaré este marco de datos para mostrarte cómo aplicar funciones lambda usando diferentes funciones en un marco de datos en Python.
df=pd.DataFrame({ 'id':[1,2,3,4,5], 'name':['Jeremy','Frank','Janet','Ryan','Mary'], 'age':[20,25,15,10,30], 'income':[4000,7000,200,0,10000] })
Lambda con Aplicar
Digamos que tenemos un error en la variable edad. Registramos edades con una diferencia de 3 años. Entonces, para eliminar este error del marco de datos de Pandas, tenemos que agregar tres años a la edad de cada persona. Podemos hacer esto con el solicitar() funcionar en Pandas.
solicitar() La función llama a la función lambda y la aplica a cada fila o columna del marco de datos y devuelve una copia modificada del marco de datos:
df['age']=df.apply(lambda x: x['age']+3,axis=1)
Podemos usar el solicitar() función para aplicar la función lambda a filas y columnas de un marco de datos. Si el eje argumento en el solicitar() function es 0, entonces la función lambda se aplica a cada columna, y si es 1, la función se aplica a cada fila.
solicitar() La función también se puede aplicar directamente a una serie Pandas:
df['age']=df['age'].apply(lambda x: x+3)
Aquí, puede ver que obtuvimos los mismos resultados utilizando diferentes métodos.
Lambda con filtro
Ahora, veamos cuántas de estas personas tienen más de 18 años. Podemos hacer esto usando el filtrar() función. los filtrar() La función toma una función lambda y una serie Pandas y aplica la función lambda en la serie y filtra los datos.
Esto devuelve una secuencia de Cierto y Falso, que utilizamos para filtrar los datos. Por lo tanto, el tamaño de entrada del mapa() La función es siempre mayor que el tamaño de salida.
list(filter(lambda x: x>18,df['age']))
Lambda con mapa
Podrá relacionarse con la siguiente declaración. 🙂 Es tiempo de evaluación del desempeño y los ingresos de todos los empleados aumentan en un 20%. Esto significa que tenemos que aumentar el salario de cada persona en un 20% en nuestro marco de datos Pandas.
Podemos hacer esto usando el mapa() función. Esta mapa() la función mapea la serie de acuerdo con la correspondencia de entrada. Es muy útil cuando tenemos que sustituir una serie por otros valores. En mapa() funciones, el tamaño de la entrada es igual al tamaño de la salida.
df['income']=list(map(lambda x: int(x+x*0.2),df['income']))
Lambda con Reducir
Ahora, veamos el ingreso total de la familia. Para calcular esto, podemos usar el reducir() función en Python. Se utiliza para aplicar una función particular a la lista de elementos de la secuencia. los reducir() La función se define en el ‘functools’ módulo.
Para usar el reducir() función, tenemos que importar el functools módulo primero:
import functools functools.reduce(lambda a,b: a+b,df['income'])
reducir() La función aplica la función lambda a los dos primeros elementos de la serie y devuelve el resultado. Luego, almacena ese resultado y nuevamente aplica la misma función lambda al resultado y al siguiente elemento de la serie. Por tanto, reduce la serie a un solo valor.
Nota: Funciones lambda en reducir() no puede tomar más de dos argumentos.
Declaraciones condicionales mediante funciones Lambda
Las funciones Lambda también admiten declaraciones condicionales, como if..else. Esto hace que las funciones lambda sean muy potentes.
Digamos que en el marco de datos de la familia tenemos que categorizar a las personas en ‘Adultos’ o ‘Niños’. Para esto, simplemente podemos aplicar la función lambda a nuestro marco de datos:
df['category']=df['age'].apply(lambda x: 'Adult' if x>=18 else 'Child')
Aquí, puede ver que Ryan es el único hijo de esta familia y el resto son adultos. Eso no fue tan difícil, ¿verdad?
¿Que sigue?
Las funciones Lambda son bastante útiles cuando se trabaja con mucho código iterativo. Parecen complejas, según tengo entendido, pero estoy seguro de que habrás comprendido su importancia en este tutorial.
Comparta este artículo y comente a continuación en caso de que tenga alguna consulta o comentario. Aquí, he enumerado algunos blogs y cursos en profundidad relacionados con la ciencia de datos y Python:
Cursos:
Blogs: