python数据分析——四种高级函数

python数据分析——四种高级函数,第1张

python数据分析——四种高级函数

 今天学习了python中的四种高级函数lambda,map,reduce,filter。常用于数据分析当中。

lambda用于定义一些简单的函数,但是太复杂的无法处理。使用lambda不需要定义函数名称,直接调用函数就可以,如果是def的话需要先def函数名称再return函数计算公式。

map是可以一次性将函数映射到序列中所有元素,实现一次性计算。

reduce函数的使用在python3里需要调用模块才能直接使用。reduce函数会先计算序列前两个元素的结果,用该结果继续和下一个元素进行运算,循环到最后一个元素。

filter函数是用来过滤数据,留下返回值是True的元素。

#lambda函数——匿名函数,作用是定义函数,一般是简单点的函数,相当于define
#不需要def来定义,不需要有具体函数名称
#语法结构是 lambda par1,par2,...,parn:expression

g=lambda x:x**2#相当于def g(x)=x**2
print(g(2))

f=lambda x,y,z:x+y+z
print(f(1,2,3))

h=lambda x:"A" if x==1 else "B"
print(h(1))

#map函数,将函数映射到或者说使用到序列中每一个元素,并生成一个新序列
#函数结构 map(function,sequence)
i=[1,2,3,4]
def f(x):
    return x**2
s=list(map(f,i))
print(s)#[1, 4, 9, 16]

#lambda和map的结合
s=list(map(lambda x:x**3,i))
print(s)#[1, 8, 27, 64]

#reduce函数,python3中需要引入模块才能使用
#函数结构 reduce(function,sequence)
from functools import reduce
def f(x,y):
    return x+y
i=range(1,11)
s=reduce(f,i)#求1-10的和
print(s)

i2=range(1,101,2)
r=reduce(f,i2)
print(r)#求1-100的奇数和

i3=["我","爱","你"]
e=reduce(f,i3)
print(e)#字段拼接

#filter函数,过滤掉不符合条件的元素,返回由符合条件的因素构成的序列
#函数结构 filter(function,sequence)
#找出偶数
s=list(filter(lambda x:x%2==0,range(101)))
print(s)

i=[1,2,3,3.234,23.43,"3214","fid"]
#找出整数[1, 2, 3]
#用lambda
r=list(filter(lambda x: 1 if isinstance(x,int) else 0,i))
print(r)#[1, 2, 3]留下Ture的结果
#用def
def int_f(x):
    if isinstance(x,int):
        return True
    else:
        return False
r=list(filter(int_f,i))
print(r)#[1, 2, 3]

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/zaji/5658673.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存