加入收藏 | 设为首页 | 会员中心 | 我要投稿 牡丹江站长网 (https://www.0453zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

不能错过!你必须知道的3种重要Python技能

发布时间:2019-11-13 03:52:14 所属栏目:优化 来源:读芯术
导读:【线上直播】11月21日晚8点贝壳技术总监侯圣文《数据安全之数据库安全黄金法则》 学习Pandas是很棒的体验,学习Numpy也很有趣。但是,你是否过早地开始使用程序库了呢?这也许是因为你还没有意识到pure python的魅力。 如果是这样的话,那么这篇文章会对你很
副标题[/!--empirenews.page--] 【线上直播】11月21日晚8点贝壳技术总监侯圣文《数据安全之数据库安全黄金法则》

 学习Pandas是很棒的体验,学习Numpy也很有趣。但是,你是否过早地开始使用程序库了呢?这也许是因为你还没有意识到pure python的魅力。

不能错过!你必须知道的3种重要Python技能

如果是这样的话,那么这篇文章会对你很有帮助。

本文将介绍几个非常有趣的pure python功能,这些功能是在日常数据科学工作中十分常用的。在整个数据准备阶段都都可以大量地使用它们(大量用于数据清理),甚至在绘制之前也可以使用它们来聚合数据。

希望你也可以将这些技巧运用到项目中。尽管没有运行时的速度或性能优势,但是与从零开始实施此逻辑相比,这将为你节省大量时间。因此,言归正传,让我们来看第一点吧!

1、拉姆达函数(Lambda Functions)

拉姆达函数非常强大。当然,当必须以相同的方式清理多个列时,我们不会使用它,但这并不是经常遇到的情况。通常情况下,每个属性在清理后都需要自己的逻辑。

Lambda函数允许创建“匿名”函数。这基本上意味着可以快速生成特定函数,而无需使用pythonsdef来正确定义函数。

尽管如此,请记住Lambda函数主要被设计成one-liners,因此它应该用于简单的东西。对于更复杂的逻辑,则需要使用常规函数。

里将展示两个具体示例,通过这些示例,我们无需为所有项目定义函数,从而可以节省许少时间。虽然第一个示例可能不会在现实中常用,但值得一提。这就是对数字求平方。

  1. #regular function 
  2. def square_number(x): 
  3.     res = x ** 2 
  4.     return res# lambda function 
  5. square = lambda x: x ** 2# results 
  6. print('square_number(4): {}'.format(square_number(4))) 
  7. print('square lambda: {}'.format(square(4)))>>> square_number(4):16 
  8. >>> square lambda: 16 

上面的代码片段以常规方式和lambda函数的方式完成了相同逻辑的实现。虽然结果是一样的,但是lambda的单行看起来舒服多了!

第二个例子是关于检查数字是偶数或非偶数:

  1. #regular function 
  2. def is_even(x): 
  3.     if x % 2 == 0: 
  4.         return True 
  5.     else: 
  6.         return False 
  7.   
  8.   
  9. # lambda function 
  10. even = lambda x: x % 2 == 0# results 
  11. print('is_even(4): {}'.format(is_even(4))) 
  12. print('is_even(3): {}'.format(is_even(3))) 
  13. print('even(4): {}'.format(even(4))) 
  14. print('even(3): {}'.format(even(3)))>>> is_even(4): True 
  15. >>> is_even(3): False 
  16. >>> even(4): True 
  17. >>> even(3): False 

再一次,同样的逻辑以两种方式实现。你来决定你喜欢哪一个吧。

2、列表解析(List Comprehensions)

简单来说,列表解析使我们可以使用其他符号创建列表。可以将其视为括号内的单行循环。

在做特征工程时,使用列表解析很方便。例如,假设我们在通过分析电子邮件标题来进行垃圾邮件检测,那么我们会想弄明白是否问号会在垃圾邮件中经常出现。如果用列表解析来实现的话,这将是一项非常简单的任务。

就不再进行更多的理论解释了。例子才是最重要的。

这里的例子选择声明一个常规函数,该函数将检查列表中以某个字符(在这种情况下为“ a”)开头的项目。实施后,再用列表解析执行相同的操作。猜猜哪个会写起来更快呢?

  1. lst =['Acer', 'Asus', 'Lenovo', 'HP']# regular function 
  2. def starts_with_a(lst): 
  3.     valids = [] 
  4.   
  5.     for word in lst: 
  6.         if word[0].lower() == 'a': 
  7.             valids.append(word) 
  8.   
  9.     return valids 
  10.   
  11.   
  12. # list comprehension 
  13. lst_comp = [word for word in lst if word[0].lower() == 'a']# results 
  14. print('starts_with_a: {}'.format(starts_with_a(lst))) 
  15. print('list_comprehension: {}'.format(lst_comp))>>> starts_with_a:['Acer', 'Asus'] 
  16. >>> list_comprehension: ['Acer', 'Asus'] 

如果是第一次看到这样的方式,语法可能会有点混乱。但是当你每天都在写这样的函数时,它们会越来越吸引你,看你能把多少复杂的东西应用进去。

3、Zip函数

这是在实践中很少看到的内置python方法之一。从数据科学家的角度来看,它使我们能够同时迭代两个或多个列表。在处理日期和时间时,这可以派上用场。

(编辑:牡丹江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!