我有一个关于python中lambda函数的有趣问题。我很想听听你精彩的解释。
short_list = np.array([1,2,3,4,5])
func_1 = lamda x: x*2
func_2 = lamda x: x - x.mean()
当我们在short_list上使用func_1时,我们几乎将每个元素乘以2。
当在short_list上应用func_2时,我们用short_list的平均值减去每个元素。
我的问题是:既然lambda函数中的x代表列表中的每个元素,那么python怎么能把x.mean((理解为short_list的平均值呢?
欢迎任何解释,非常感谢您的帮助!
这是因为您使用的是np.array,因此x是一个向量。
func_1=x*2与short_list*2相同。如果你给它传递一个np.array,这个数组就会乘以2。(这不是按元素应用的——它一次应用于整个矢量(
func_2与short_list-标量short_list.mean((相同。这将导致每个元素都有一个np.array-标量short-list.mean
底线是每个操作都直接在np.array上,而不是在其元素上。没有循环。