np.select()、np.piecewise()对多条件逻辑判断的向量化计算的支持

博客探讨了在Python编程中如何提高条件判断的执行速度,尤其是针对大量逻辑判断的情况。介绍了使用np.where()、df.where、df.map作为优化手段,以及通过定义def函数并应用apply或list(map())调用来提升效率。文章进一步提到了np.select()和np.piecewise()两个函数,它们可能为多条件逻辑判断提供更高效的向量化计算支持。
摘要由CSDN通过智能技术生成

当python程序里出现大量的条件判断时,要如何做到让程序运行的速度最快?
这是一直以来都遇到的问题,python的for if else结构速度很慢,特别是[for 里 if 嵌套if] 、[for if 并列 elif]的方法,
暂时写的算法里用的是:
1、np.where()、df.where、df.map替代一部分条件逻辑
2、把条件逻辑判断写到def()里,再apply或者是list(map())调用条件逻辑的def()
这两种方法都要比[for if 套 if]快很多,几乎在任何数据场景下。但是有没有更好的方法?
今天看到两个可能有优化效果的函数,记录一下。

来源:https://www.cnblogs.com/fengguozhuying/p/9171806.html

np.selcect() 
np.select(condlist, choicelist, default=0)

condlist是首选条件,choicelist是候选的条件.(如果condlist满足那么choicelist就没用),default是两者都满足后还剩余的默认值.

例1:
t = np.arange(6)
t
Out[12]: array([0, 1, 2, 3, 4, 5])

np.select([t<6,t>2,True],[t+10,t-10,66])   #因为t<6都满足,索引执行t+10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

车忻青

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值