当前位置: 首页 > 后端技术 > Python

这3个重要的Python技能你必须知道!

时间:2023-03-26 13:40:50 Python

学习Pandas是一种很棒的体验,学习Numpy也很有趣。但是你是不是太早开始使用图书馆了?这可能是因为你还没有体会到纯python的魅力。如果是这样,那么这篇文章将对您有很大的帮助。本文将介绍几个非常有趣的纯Python特性,这些特性在日常数据科学工作中非常常用。它们在整个数据准备阶段(大量用于数据清理)甚至在绘制聚合数据之前都被大量使用。希望您也可以将这些技巧应用到您的项目中。尽管没有运行时速度或性能优势,但与从头开始实施此逻辑相比,这将为您节省大量时间。因此,事不宜迟,让我们进入第一点!1.Lambda函数Lambda函数非常强大。当然,当必须以相同方式清理多个列时,我们不会使用它,但这种情况并不常见。通常,每个属性在清理后都需要自己的逻辑。Lambda函数允许创建“匿名”函数。这基本上意味着可以快速生成特定函数,而无需使用pythonsdef正确定义函数。尽管如此,请记住Lambda函数主要设计为单行代码,因此它应该用于简单的东西。对于更复杂的逻辑,您需要使用常规函数。这里有两个具体的例子,我们可以通过不必为所有项目定义函数来节省一点时间。虽然第一个示例在现实中可能不会经常使用,但值得一提。这称为平方数。#regularfunctiondefsquare_number(x):res=x**2returnres#lambdafunction上面的代码片段以常规方式和lambda函数方式实现了相同的逻辑。虽然结果一样,但是lambdaone-liner看起来舒服多了!第二个例子是关于检查一个数是否为偶数:#regularfunctiondefis_even(x):ifx%2==0:returnTrueelse:returnFalse#lambdafunctioneven=lambdax:x%2==0#resultsprint('is_even(4):{}'.format(is_even(4)))print('is_even(3)):{}'.format(is_even(3)))print('even(4)):{}'.format(even(4)))print('even(3):{}'.format(even(3)))>>>is_even(4):True>>>is_even(3):False>>>even(4):True>>>even(3):False同样,同样的逻辑以两种方式实现。你决定你喜欢哪一个。2.列表推导简单来说,列表推导允许我们使用其他符号创建列表。将其视为括号内的单行循环。在进行特征工程时,使用列表推导式很方便。例如,如果我们通过分析电子邮件标题来检测垃圾邮件,我们会想知道问号是否经常出现在垃圾邮件中。如果用列表理解来实现,这将是一个非常简单的任务。不再给出更多的理论解释。例子才是最重??要的。此处的示例选择声明一个通用函数,该函数将检查列表中以特定字符(本例中为“a”)开头的项目。实施后,使用列表理解执行相同的操作。猜猜哪个会写得更快?lst=['Acer','Asus','Lenovo','HP']#regularfunctiondefstarts_with_a(lst):valids=[]forwordinlst:ifword[0].lower()=='a':valids.append(word)returnvalids#listcomprehensionlst_comp=[wordforwordinlstifword[0].lower()=='a']#resultsprint('starts_with_a:{}'.format(starts_with_a(lst)))print('list_comprehension:{}'.format(lst_comp))>>>starts_with_a:['Acer','Asus']>>>list_comprehension:['Acer','Asus']如果是第一次以这种方式查看,语法可能会有点混乱。但是当你每天都写这样的函数时,它们对你的吸引力会越来越大,就看你能应用到它的复杂程度了。3.zip函数这是python内置的一种方法,在实践中很少见到。从数据科学家的角度来看,它允许我们同时迭代两个或多个列表。这在处理日期和时间时会派上用场。例如,当您有一个属性表示事件的开始时间和第二个属性表示事件的结束时间时,几乎总是需要计算它们之间的时间差以供进一步分析。zip函数是迄今为止最简单的方法。例如,要比较某个虚构公司和虚构地区的一周销售日期:sales_north=[350,287,550,891,241,653,882]sales_south=[551,254,901,776,105,502,976]fors1,s2inzip(sales_north,sales_south):print(s1—s2)>>>-20133-351115136151-94看看这有多简单。可以应用相同的逻辑同时迭代3个数组,您只需要在括号中添加“s3”和其他一些列表名称。结论PurePython真的很强大。一旦您理解了它的作用,您就不需要一个专门的库来处理所有的事情。这将帮助您成为更好的程序员。练习这些技能,掌握它们,并将它们应用到您的日常工作中。无论是为了娱乐、功课还是工作,您都不会后悔。文渊网络仅供学习,如有侵权请联系删除。学习Python的路上肯定会遇到困难,不要慌张,我这里有一套学习资料,包括40+电子书,800+教学视频,涉及Python基础、爬虫、框架、数据分析、机学习等等,别怕你学不会!https://shimo.im/docs/JWCghr8...《Python学习资料》关注公众号【蟒圈】,每日优质文章推送。