O que são funções Lambda? Função Lambda em Python

Conteúdo

Introdução

Para loops são a antítese de programação eficiente. Eles ainda são necessários e são os primeiros loops condicionais ensinados a Iniciantes em Python Mas na minha opinião, Eles deixam muito a desejar.

Estão por os loops podem ser complicados e podem tornar nosso código Python volumoso e confuso. Mas espera, Qual é a solução alternativa? Funções Lambda em Python!

As funções Lambda dão a um cientista de dados um impulso duplo. Você pode escrever um código Python mais limpo e acelerar suas tarefas de aprendizado de máquina. O truque está em dominar as funções lambda e é aqui que os iniciantes podem tropeçar.

Feature_image-1-1320972

Inicialmente, Também achei as funções lambda difíceis de entender. Eles são de curta duração, mas podem parecer confusos como os recém-chegados. Mas uma vez que entendi como usá-los em Piton, Eu os achei muito fáceis e poderosos. E tenho certeza que você também no final deste tutorial.

Então, neste artigo, você aprenderá sobre o poder das funções lambda em Python e como usá-las. Vamos começar!

Observação: Novo em Python? Recomendo enfaticamente que confira os cursos gratuitos abaixo para se atualizar:

O que são funções Lambda?

Uma função lambda é uma pequena função que contém uma única expressão. As funções lambda também podem atuar como funções anônimas, onde não requerem nenhum nome. Eles são muito úteis quando temos que realizar pequenas tarefas com menos código.

Também podemos usar funções lambda quando temos que passar uma pequena função para outra função. Não se preocupe, Cobriremos isso em detalhes em breve, quando vermos como usar funções lambda em Python.

As funções Lambda foram introduzidas pela primeira vez pela Igreja Alonzo na década de 1920. 1930. Senhor. A Igreja é bem conhecida pelo cálculo lambda e pela Tese de Church-Turing.

As funções Lambda são úteis e usadas em muitas linguagens de programação, mas aqui vamos nos concentrar em usá-los em Python. E Python, As funções lambda têm a seguinte sintaxe:

lambda-6573172

As funções Lambda consistem em três partes:

  • Palavra chave
  • Variável / argumento vinculado, e
  • Corpo ou expressão

A palavra-chave é obrigatória e deve ser um lambda, enquanto os argumentos e o corpo podem mudar de acordo com os requisitos. Você deve estar se perguntando por que deve optar por funções lambda quando tem outras funções regulares. Pergunta justa, deixe-me expandir isso.

Comparação da função Lamba com funções regulares

lambda2-300x119-4415335

As funções Lambda são definidas pela palavra-chave lambda. Eles podem ter qualquer número de argumentos, mas apenas uma expressão. Uma função lambda não pode conter instruções e retorna um objeto de função que pode ser atribuído a qualquer variável. Eles geralmente são usados ​​para expressões de uma linha.

Funções regulares são criadas usando o def palavra chave. Eles podem ter qualquer número de argumentos e qualquer número de expressões. Eles podem conter qualquer declaração e geralmente são usados ​​para grandes blocos de código.

IIFE usando funções lambda

IIFE são expressões de função imediatamente chamadas. Estas são funções que são executadas assim que são criadas. IIFE não requer uma chamada explícita para invocar a função. E Python, IIFEs podem ser criados usando a função lambda.

Aqui, Eu criei um IIFE que retorna o cubo de um número:

(lambda x: x * x * x)(10)

lambda10-4345086

Impressionante!

Aplicação da função Lambda com diferentes funções

É hora de pular para o Python! Ligue seu Jupyter Notebook e vamos ao que interessa.

Aqui, Eu criei um conjunto de dados aleatórios contendo informações sobre uma família de 5 pessoas com sua identificação, Nomes, idades e renda por mês. Vou usar este quadro de dados para mostrar como aplicar funções lambda usando diferentes funções em um quadro de dados em Python.

df = pd.DataFrame({
    'Eu iria':[1,2,3,4,5],
    'nome':['Jeremy','Frank','Janet','Ryan','Mary'],
    'era':[20,25,15,10,30],
    'renda':[4000,7000,200,0,10000]
})

lambda3-9561560

Lambda com Aplicar

Digamos que temos um erro na variável idade. Registramos idades com uma diferença de 3 anos. Então, para remover este erro do quadro de dados do pandas, temos que adicionar três anos à idade de cada pessoa. Podemos fazer isso com o solicitar() correr em Pandas.

solicitar() A função chama a função lambda e a aplica a cada linha ou coluna no quadro de dados e retorna uma cópia modificada do quadro de dados:

df['era']= df.apply(lambda x: x['era']+3,eixo = 1)

lambda4-6330206

Podemos usar o solicitar() função para aplicar a função lambda a linhas e colunas de um quadro de dados. Se ele eixo argumento no solicitar() função es 0, então a função lambda é aplicada a cada coluna, e isso é 1, a função é aplicada a cada linha.

solicitar() A função também pode ser aplicada diretamente a uma série Pandas:

df['era']= df['era'].Aplique(lambda x: x + 3)

lambda5-2448911

Aqui, você pode ver que obtivemos os mesmos resultados usando métodos diferentes.

Lambda com filtro

Agora, Vamos ver quantas dessas pessoas têm mais de 18 anos. Podemos fazer isso usando o filtro() Função. a filtro() A função recebe uma função lambda e uma série Pandas e aplica a função lambda à série e filtra os dados.

Isso retorna uma sequência de Certo e Falso, que usamos para filtrar os dados. Portanto, o tamanho de entrada do Mapa() A função é sempre maior que o tamanho de saída.

Lista(filtro(lambda x: x>18,df['era']))

lambda6-9676852

Lambda com mapa

Pode estar relacionado à seguinte declaração. 🙂 É hora de avaliação de desempenho e a renda de todos os funcionários aumenta em 20%. Isso significa que temos que aumentar o salário de cada pessoa em 20% em nosso quadro de dados do Pandas.

Podemos fazer isso usando o Mapa() Função. Está Mapa() a função mapeia a série de acordo com a correspondência de entrada. É muito útil quando temos que substituir uma série por outros valores. Sobre Mapa() funções, o tamanho da entrada é igual ao tamanho da saída.

df['renda']= lista(mapa(lambda x: int(x + x * 0,2),df['renda']))

lambda7-6345895

Lambda com Reduce

Agora, vamos ver a renda total da família. Para calcular isso, podemos usar o reduzir() função em python. É usado para aplicar uma função particular à lista de elementos na sequência. a reduzir() A função é definida no ‘Functools’ módulo.

Para usar o reduzir() Função, temos que importar o functools módulo primeiro:

importar functools
functools.reduce(lambda a,b: a + b,df['renda'])

lambda8-6393745

lambda11-e1582548201147-9461040

reduzir() A função aplica a função lambda aos dois primeiros elementos da string e retorna o resultado. Mais tarde, armazena esse resultado e novamente aplica a mesma função lambda ao resultado e ao próximo elemento da série. Por tanto, reduza a série a um único valor.

Observação: Lambda funciona em reduzir() não pode ter mais de dois argumentos.

Declarações condicionais usando funções lambda

As funções lambda também suportam declarações condicionais, como if..else. Isso torna as funções lambda muito poderosas.

Digamos que no quadro de dados da família tenhamos que categorizar as pessoas em "Adultos’ ou 'Crianças'. Para isto, podemos simplesmente aplicar a função lambda ao nosso quadro de dados:

df['categoria']= df['era'].Aplique(lambda x: 'Adulto' se x>= 18 mais 'Criança')

lambda9-300x195-5941193

Aqui, você pode ver que Ryan é a única criança nesta família e o resto são adultos. Isso não foi tão difícil, verdade?

Que segue?

As funções Lambda são bastante úteis ao trabalhar com muitos códigos iterativos. Eles parecem complexos, segundo Tenho entendido, mas tenho certeza que você terá entendido sua importância neste tutorial.

Compartilhe este artigo e comente abaixo caso tenha alguma dúvida ou comentário. Aqui, Listei alguns blogs e cursos aprofundados relacionados à ciência de dados e Python:

cursos:

Blogs:

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.