首页 > 解决方案 > Python Lambda 函数

问题描述

所以我在这里有这个功能,谁能解释这里发生了什么?我知道函数体中发生了什么,但不知道 lambda 函数如何工作我是 lambda 函数的新手,所以我不确定函数返回的方式或内容。t 和 c 到底是什么?

def get_gradient(self, A, b, x, beta):
    return (lambda t,c: (2*self.lambda_*x - A.T@(b*t)/c, sum(-b*t)/c))(1/(1+np.exp(b*(A@x+beta))), A.shape[0]

A 是矩阵,b 和 x 是列向量,而 beta 和 lambda_ 是标量

标签: pythonfunctionlambda

解决方案


在这里,get_gradient(self, A, b, x, beta)返回一个函数。换句话说,它是一个将定义另一个函数并将其作为输出返回的函数。如果您想根据不同类型的参数定义许多函数,这很有用。

我将向您推荐这篇文章,以获取有关lambda函数及其典型用途的更多信息。

但是在您的情况下,一个更简单的示例可能会帮助您了解发生了什么!假设您有:

def f(a):
    return lambda x: x**a

在这里, f 返回一个函数,该函数将 a 的幂应用于其输入。

一旦你有了这个,你可以这样做:

g = f(2)

结果与您所做的基本相同:

def g(x):
    return x**2

无论哪种情况,您现在都可以执行以下操作:

g(5)

# > 25

推荐阅读