国际网站怎么进,美容院顾客管理系统软件,注册域名遵循什么原则,淮滨网站制作1、 lambda lambda原型为#xff1a;lambda 参数:操作(参数)
lambda函数也叫匿名函数#xff0c;即没有具体名称的函数#xff0c;它允许快速定义单行函数#xff0c;可以用在任何需要函数的地方。这区别于def定义的函数。
lambda与def的区别#xff1a;
1#xff09;…1、 lambda lambda原型为lambda 参数:操作(参数)
lambda函数也叫匿名函数即没有具体名称的函数它允许快速定义单行函数可以用在任何需要函数的地方。这区别于def定义的函数。
lambda与def的区别
1def创建的方法是有名称的而lambda没有。
2lambda会返回一个函数对象但这个对象不会赋给一个标识符而def则会把函数对象赋值给一个变量函数名。
3lambda只是一个表达式而def则是一个语句。
4lambda表达式” : “后面只能有一个表达式def则可以有多个。
5像if或for或print等语句不能用于lambda中def可以。
6lambda一般用来定义简单的函数而def可以定义复杂的函数。
#单个参数的
g lambda x : x ** 2
print g(3)9#多个参数的
g lambda x, y, z : (x y) ** z
print g(1,2,2)92、map函数 map是python内置函数会根据提供函数对指定的序列做映射。
map()函数的格式是
map(function,iterable,...) 第一个参数接受一个函数名后面的参数接受一个或多个可迭代的序列返回的是一个集合。
把函数依次作用在list中的每一个元素上得到一个新的list并返回。注意map不改变原list而是返回一个新list。map()函数会将指定的函数依次作用于某个序列的每个元素并返回一个迭代器对象。
例子1
del square(x):return x ** 2map(square,[1,2,3,4,5])# 结果如下:
[1,4,9,16,25]
例子2
map(lambda x, y: xy,[1,3,5,7,9],[2,4,6,8,10])# 结果如下
[3,7,11,15,19]
3、apply
Python中apply函数的格式为apply(func,*args,**kwargs)
当然func可以是匿名函数。
用途当一个函数的参数存在于一个元组或者一个字典中时用来间接的调用这个函数并将元组或者字典中的参数按照顺序传递给参数
解析args是一个包含按照函数所需参数传递的位置参数的一个元组简单来说假如A函数的函数位置为 A(a1,b2),那么这个元组中就必须严格按照这个参数的位置顺序进行传递(a3,b4)而不能是(b4,a3)这样的顺序。kwargs是一个包含关键字参数的字典而其中args如果不传递kwargs需要传递则必须在args的位置留空。
apply的返回值就是函数func函数的返回值。 def function(a,b): print(a,b) apply(function,(good,better)) apply(function,(2,36)) apply(function,(cai,quan)) apply(function,(cai,),{b:caiquan}) apply(function,(),{a:caiquan,b:Tom})
输出结果
(good, better) (2, 9) (cai, quan) (cai, caiquan) (caiquan, Tom)
有时候函数的参数可能是DataFrame中的行或者列。
DataFrame中apply的用法
#函数应用和映射
import numpy as np
import pandas as pd
dfpd.DataFrame(np.random.randn(4,3),columnslist(bde),index[utah,ohio,texas,oregon])
print(df)
b d e
utah -0.667969 1.974801 0.738890
ohio -0.896774 -0.790914 0.474183
texas 0.043476 0.890176 -0.662676
oregon 0.701109 -2.238288 -0.154442
#将函数应用到由各列或行形成的一维数组上。DataFrame的apply方法可以实现此功能
flambda x:x.max()-x.min()
#默认情况下会以列为单位分别对列应用函数
t1df.apply(f)
print(t1)
t2df.apply(f,axis1)
print(t2)
b 1.597883
d 4.213089
e 1.401566
dtype: float64
utah 2.642770
ohio 1.370957
texas 1.552852
oregon 2.939397
dtype: float64
#除标量外传递给apply的函数还可以返回由多个值组成的Series
def f(x):return pd.Series([x.min(),x.max()],index[min,max])
t3df.apply(f)
#从运行的结果可以看出按列调用的顺序调用函数运行的结果在右边依次追加
print(t3)b d e
min -0.896774 -2.238288 -0.662676
max 0.701109 1.974801 0.738890
#元素级的python函数将函数应用到每一个元素
#将DataFrame中的各个浮点值保留两位小数
flambda x: %.2f%x
t3df.applymap(f)
print(t3)
b d e
utah -0.67 1.97 0.74
ohio -0.90 -0.79 0.47
texas 0.04 0.89 -0.66
oregon 0.70 -2.24 -0.15
#注意之所以这里用map,是因为Series有一个元素级函数的map方法。而dataframe只有applymap。
t4df[e].map(f)
print(t4)
utah 0.74
ohio 0.47
texas -0.66
oregon -0.15参考自Python中的lambda和apply用法_anshuai_aw1的博客-CSDN博客_apply lambda