introduction
À les boucles sont l'antithèse d'une programmation efficace. Ils sont toujours nécessaires et sont les premières boucles conditionnelles enseignées à Débutants Python Mais à mon avis, Ils laissent beaucoup à désirer.
Sommes pour les boucles peuvent être encombrantes et peuvent rendre notre code Python volumineux et désordonné. Mais attendez, Quelle est la solution de contournement? Fonctions lambda en Python!
Les fonctions lambda donnent un double coup de pouce à un data scientist. Vous pouvez écrire du code Python plus soigné et accélérer vos tâches d'apprentissage automatique. L'astuce réside dans la maîtrise des fonctions lambda et c'est là que les débutants peuvent trébucher.
Initialement, J'ai aussi trouvé les fonctions lambda difficiles à comprendre. Ils sont de courte durée, mais ils peuvent sembler déroutants en tant que nouveaux arrivants. Mais une fois que j'ai compris comment les utiliser dans Piton, Je les ai trouvés très faciles et puissants. Et je suis sûr que vous aussi à la fin de ce tutoriel.
Ensuite, dans cet article, vous découvrirez la puissance des fonctions lambda en Python et comment les utiliser. Nous allons commencer!
Noter: Nouveau sur Python? Je recommande fortement de consulter les cours gratuits ci-dessous pour vous mettre à jour:
Que sont les fonctions Lambda?
Une fonction lambda est une petite fonction qui contient une seule expression. Les fonctions Lambda peuvent également agir comme des fonctions anonymes lorsqu'elles ne nécessitent aucun nom. Ils sont très utiles lorsque nous devons effectuer de petites tâches avec moins de code.
On peut aussi utiliser des fonctions lambda quand on doit passer une petite fonction à une autre fonction. Ne t'inquiète pas, Nous couvrirons cela en détail bientôt lorsque nous verrons comment utiliser les fonctions lambda en Python.
Les fonctions lambda ont été introduites pour la première fois par Alonzo Church dans les années 1990. 1930. Le Mr. Church est bien connu pour le calcul lambda et la thèse Church-Turing.
Les fonctions Lambda sont utiles et utilisées dans de nombreux langages de programmation, mais ici, nous allons nous concentrer sur leur utilisation en Python. Et Python, les fonctions lambda ont la syntaxe suivante:
Les fonctions lambda se composent de trois parties:
- Mot-clé
- Variable / argument lié, Oui
- Corps ou expression
Le mot-clé est obligatoire et doit être un lambda, tandis que les arguments et le corps peuvent changer selon les exigences. Vous devez vous demander pourquoi vous devriez opter pour des fonctions lambda alors que vous avez d'autres fonctions régulières. Question juste, permettez-moi de développer ceci.
Comparaison de la fonction Lamba avec des fonctions régulières
Les fonctions lambda sont définies par le mot-clé lambda. Ils peuvent avoir n'importe quel nombre d'arguments, mais seulement une expression. Una función lambda no puede contener declaraciones y devuelve un objeto de función que se puede asignar a cualquier variableEn statistique et en mathématiques, ongle "variable" est un symbole qui représente une valeur qui peut changer ou varier. Il existe différents types de variables, et qualitatif, qui décrivent des caractéristiques non numériques, et quantitatif, représentation de grandeurs numériques. Les variables sont fondamentales dans les expériences et les études, puisqu’ils permettent l’analyse des relations et des modèles entre différents éléments, faciliter la compréhension de phénomènes complexes..... Ils sont généralement utilisés pour les expressions sur une ligne.
Les fonctions régulières sont créées à l'aide du déf Mot-clé. Ils peuvent avoir n'importe quel nombre d'arguments et n'importe quel nombre d'expressions. Ils peuvent contenir n'importe quelle déclaration et sont généralement utilisés pour de gros blocs de code.
IIFE utilisant les fonctions lambda
Les IIFE sont des expressions de fonction immédiatement invoquées. Ce sont des fonctions qui s'exécutent dès leur création. IIFE ne nécessite pas d'appel explicite pour invoquer la fonction. Et Python, Les IIFE peuvent être créés à l'aide de la fonction lambda.
Ici, J'ai créé un IIFE qui renvoie le cube d'un nombre:
(lambda x: x*x*x)(10)
Impressionnant!
Application de fonction lambda avec différentes fonctions
Il est temps de se lancer dans Python! Allumez votre Jupyter Notebook et passons aux choses sérieuses.
Ici, J'ai créé un ensemble de données aléatoires contenant des informations sur une famille de 5 personnes avec leur identification, Noms, âges et revenus par mois. Je vais utiliser ce bloc de données pour vous montrer comment appliquer des fonctions lambda à l'aide de différentes fonctions dans un bloc de données en Python.
df=pd.DataFrame({ 'identifiant':[1,2,3,4,5], 'Nom':["Jérémy",'Franc','Janet','Rian','Marie'], 'âge':[20,25,15,10,30], 'le revenu':[4000,7000,200,0,10000] })
Lambda avec Appliquer
Disons que nous avons une erreur dans la variable d'âge. Nous enregistrons les âges avec une différence de 3 ans. Ensuite, pour supprimer cette erreur de la trame de données pandas, il faut ajouter trois ans à l'âge de chaque personne. Nous pouvons le faire avec le demander() courir sur Pandas.
demander() La fonction appelle la fonction lambda et l'applique à chaque ligne ou colonne du bloc de données et renvoie une copie modifiée du bloc de données:
df['âge']=df.appliquer(lambda x: X['âge']+3,axe=1)
Nous pouvons utiliser le demander() fonction pour appliquer la fonction lambda aux lignes et aux colonnes d'un bloc de données. Si il axe argumentation dans le demander() fonction es 0, donc la fonction lambda est appliquée à chaque colonne, et c'est 1, la fonction est appliquée à chaque ligne.
demander() La fonction peut également être appliquée directement à une série Pandas:
df['âge']=df['âge'].appliquer(lambda x: x+3)
Ici, vous pouvez voir que nous avons obtenu les mêmes résultats en utilisant différentes méthodes.
Lambda avec filtre
À présent, Voyons combien de ces personnes ont plus de 18 ans. Nous pouvons le faire en utilisant le filtre() une fonction. Les filtre() La fonction prend une fonction lambda et une série Pandas et applique la fonction lambda sur la série et filtre les données.
Cela renvoie une séquence de Certain Oui Faux, ce que nous utilisons pour filtrer les données. Donc, la taille d'entrée du Carte() La fonction est toujours supérieure à la taille de sortie.
liste(filtre(lambda x: X>18,df['âge']))
Lambda avec carte
Peut être lié à la déclaration suivante. 🙂 C'est le moment de l'évaluation des performances et le revenu de tous les employés augmente de 20%. Cela signifie que nous devons augmenter le salaire de chaque personne de 20% dans notre data frame Pandas.
Nous pouvons le faire en utilisant le Carte() une fonction. Ce Carte() la fonction mappe la série en fonction de la correspondance d'entrée. C'est très utile quand on doit remplacer une série par d'autres valeurs. Dans Carte() les fonctions, la taille de l'entrée est égale à la taille de la sortie.
df['le revenu']= liste(carte(lambda x: entier(x+x*0.2),df['le revenu']))
Lambda avec Réduire
À présent, voyons le revenu total de la famille. Pour calculer cela, nous pouvons utiliser le réduire() fonction en python. Il est utilisé pour appliquer une fonction particulière à la liste des éléments de la séquence. Les réduire() La fonction est définie dans le « outils fonctionnels’ module.
Pour utiliser le réduire() une fonction, nous devons importer le outils fonctionnels moduler d'abord:
importer des outils de fonction functools.reduce(lambda un,b: a+b,df['le revenu'])
réduire() La fonction applique la fonction lambda aux deux premiers éléments de la chaîne et renvoie le résultat. Alors, stocke ce résultat et applique à nouveau la même fonction lambda au résultat et à l'élément suivant de la série. Pourtant, réduire la série à une seule valeur.
Noter: Fonctions lambda dans réduire() ne peut pas prendre plus de deux arguments.
Déclarations conditionnelles à l'aide de fonctions Lambda
Les fonctions Lambda prennent également en charge les déclarations conditionnelles, como si..sinon. Cela rend les fonctions lambda très puissantes.
Disons que dans le cadre de données familiales, nous devons catégoriser les personnes en « adultes’ ou « enfants ». Pour ca, nous pouvons simplement appliquer la fonction lambda à notre trame de données:
df['Catégorie']=df['âge'].appliquer(lambda x: 'Adulte' si x>=18 sinon 'Enfant')
Ici, vous pouvez voir que Ryan est le seul enfant de cette famille et les autres sont des adultes. Ce n'était pas si difficile, vérité?
Suivant?
Les fonctions lambda sont très utiles lorsque vous travaillez avec beaucoup de code itératif. Ils semblent complexes, selon ce que j'ai entendu, mais je suis sûr que vous aurez compris son importance dans ce tutoriel.
Partagez cet article et commentez ci-dessous au cas où vous auriez des questions ou des commentaires. Ici, J'ai répertorié quelques blogs et cours approfondis liés à la science des données et à Python:
cours:
Blogues: