Funções Lambda ou Anonimas e Função apply( ) Associadas

Erico Couto Jr
5 min readOct 3, 2020

by Erico Couto Jr.

Nesta publicação irei fazer uma descrição das funções do tipo lambda e a função built-in apply(). E o uso associados destas duas ferramentas para serem aplicadas em códicos de forma mais eficientes. Lambda é uma letra grega que usamos em diversas áreas do conhecimento, quase um “coringa”, mas na matemática ela tem o signoficado mais próximo do uso feito na linguagem Python, ou em computação em geral. Ela é descrita como uma função anonima, ou sem nome. Já a função apply( ) é uma função definida internamente na liguagem Python que tem o objetivo de, como o nome diz, aplicar algo a algum objeto anteriormente definido.

Lambda

As funções Lambda oferecem um impulso duplo para um cientista de dados. Você pode escrever um código Python mais organizado e acelerar suas tarefas . O truque está em dominar as funções lambda e é aí que os iniciantes podem ter dificuldade.

Inicialmente, também achei as funções lambda difíceis de entender. Elas são curtas, mas podem parecer confusas para um recém-chegado. Mas assim que entendi como usá-los em Python , achei muito fáceis e poderosas. E tenho certeza de que você também irá entender.

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

As funções lambdas são compostas basicamente de três partes: a palavra chave (lambda), as variáveis e/ou argumentos vinculados e por fim a expreção. A palavra-chave lambda é obrigatória e os argumentos ou variáveis podem ser variados e conforme a necessidade da expressão criada.

IIFEs (Immediately invoked function expression) são expressões de função invocadas imediatamente. Estas são funções que são executadas assim que são criadas, não requerem nenhuma chamada explícita para invocá-las.

Algumas explicações sobre as funções anonimas são ilustradas da seguinte forma:

Esse formato é um crime contra as boas práticas em programação. pois estamos instaciando uma função lambda a uma variável e reservando desnecessáriamente uma área na memória para f . E as funções anonimas tem o objetivo de funcionar em apenas um momento e não serão mais utilizadas posteriormente. Isso evitaria o consumo de memória (memória — recurso que devemos usar com parcimônia e devemos reservar para ações mais necessárias).

Caso tenhamos que usar frequentemente uma função dentro do nosso códico ou script , devemos fazer uso de uma função regulares definida anteriormente ao uso, usando def (em Python). Descrevo a mesma função lambda da ilustração (lambda) anterior.

Este é o formato de uma função regular

É importante entender que a função criada é apenas uma ilustração, e permite a comparação dos dois tipos de funções. No segundo tipo de função apresentado devemos frizar que ela permanecerá disponível para uso enquanto a função estiver alocada em memória(e ocupando espaço na memória, claro), ou enquanto ela não for removida da memória del.

Também podemos utilizar algo ligeiramente mais complexo, mesclando outras funções juntamente à função lambda. Em seguido exemplifico o uso da função lambda associado ao if.

Ainda assim estamos instaciando uma função lambda a uma variavel e isso não é o correto a se fazer. Vamos então fazer da forma correta. Aplicaremos uma função anonima sobre os dados contidos em uma lista, criando uma nova lista conforme as condições da função lambida.

Neste script lambda condiciona os itens da nova lista

No exemplo acima podemos imaginar a versatilidade do uso das funções anonimas em diversas condições e objetos disponíveis na linguagem Python. Também é percebido que não foi necessário o uso do if para usar funções condicionais. Já no exemplo abaixo aplicamos uma função matemática simples sobre os valores numéricos da lista. E na última célula uam simples função recebendo o valor diretamente, apeenas para teste.

pandas.Apply( )

Bom, já que está entendido as possibilidades do uso de funções anonimas dentro de outras funções, poderemos partir para a função que forçe a aplicação sobre elementos de outros objetos específicos. Para isso vamos usar dataframes ou sereies do Pandas.

Vamos lá, crie um dataframe simples como este aqui do lado. Lembre-se de importar o Framework Pandas para executar esta tarefa. Com este dataframe poderemos fazer qualquer alteração (aplicar) usando lambda, criar uma nova coluna com novos valores, alterar os valores existentes conforme funções lambdas a serem criadas. Bem, vamos dar uma força pra essa galera da lista, vamos aplicar um aumento de salário para todos equivalentes a 6%, certo?!?! Vaja como podemos fazer isto na linha de código abaixo.

No código abaixo, simplesmente a variável x incorpora o dataframe e dentro da função é usado apenas o conteúdo da coluna denominada ‘salário’. No código anterior apenas a coluna ‘salário’ está disponibilizada para ser aplicada uma função

Bem, porque não usarmos uma função lambda com duas variáveis ou duas colunas do dataset criado para estas demosntrações. Vamos lá, vamos aplicar um aumento de sálário equivalente a 50% da idade de cada uma pessoa desta lista. Muitos vão achar cruel este critério, mas o exemplo é apenas para ilustrar as possibilidades. Veja como efetuar esta tarefa na ilustração abaixo.

Pra finalizar vamos criar uma variável categórica (coluna nova no dataframe) que informa se a pessoa é maior ou menor de idade. Vamos lá e observe o código a seguir.

Bom pessoal, essa são algumas das possibilidades para aplicar uma função lambda. Espero ter ajudado aos que dedicaram algum tempo lendo este artigo.

Obrigado pessoal.

--

--

Erico Couto Jr

Arquiteto Engenheiro, especialista em Analista de Dados, Avaliação, Auditoria, Patologias e Ciência de Dados