手机网站html源码下载,做公司网站,哪个程序用的多,tcms系统,小码短链接学习Pandas是很棒的体验#xff0c;学习Numpy也很有趣。但是#xff0c;你是否过早地开始使用程序库了呢#xff1f;这也许是因为你还没有意识到pure python的魅力。
作者#xff1a;读芯术 学习Pandas是很棒的体验#xff0c;学习Numpy也很有趣。但是#xff0c;你是否…学习Pandas是很棒的体验学习Numpy也很有趣。但是你是否过早地开始使用程序库了呢这也许是因为你还没有意识到pure python的魅力。
作者读芯术 学习Pandas是很棒的体验学习Numpy也很有趣。但是你是否过早地开始使用程序库了呢?这也许是因为你还没有意识到pure python的魅力。 如果是这样的话那么这篇文章会对你很有帮助。
本文将介绍几个非常有趣的pure python功能这些功能是在日常数据科学工作中十分常用的。在整个数据准备阶段都都可以大量地使用它们(大量用于数据清理)甚至在绘制之前也可以使用它们来聚合数据。
希望你也可以将这些技巧运用到项目中。尽管没有运行时的速度或性能优势但是与从零开始实施此逻辑相比这将为你节省大量时间。因此言归正传让我们来看第一点吧!
1、拉姆达函数(Lambda Functions)
拉姆达函数非常强大。当然当必须以相同的方式清理多个列时我们不会使用它但这并不是经常遇到的情况。通常情况下每个属性在清理后都需要自己的逻辑。
Lambda函数允许创建“匿名”函数。这基本上意味着可以快速生成特定函数而无需使用pythonsdef来正确定义函数。
尽管如此请记住Lambda函数主要被设计成one-liners因此它应该用于简单的东西。对于更复杂的逻辑则需要使用常规函数。
里将展示两个具体示例通过这些示例我们无需为所有项目定义函数从而可以节省许少时间。虽然第一个示例可能不会在现实中常用但值得一提。这就是对数字求平方。
#regular function
def square_number(x): res x ** 2 return res# lambda function
square lambda x: x ** 2# results
print(square_number(4): {}.format(square_number(4)))
print(square lambda: {}.format(square(4))) square_number(4):16 square lambda: 16
上面的代码片段以常规方式和lambda函数的方式完成了相同逻辑的实现。虽然结果是一样的但是lambda的单行看起来舒服多了!
第二个例子是关于检查数字是偶数或非偶数
#regular function
def is_even(x): if x % 2 0: return True else: return False # lambda function
even lambda x: x % 2 0# results
print(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、列表解析(List Comprehensions)
简单来说列表解析使我们可以使用其他符号创建列表。可以将其视为括号内的单行循环。
在做特征工程时使用列表解析很方便。例如假设我们在通过分析电子邮件标题来进行垃圾邮件检测那么我们会想弄明白是否问号会在垃圾邮件中经常出现。如果用列表解析来实现的话这将是一项非常简单的任务。
就不再进行更多的理论解释了。例子才是最重要的。
这里的例子选择声明一个常规函数该函数将检查列表中以某个字符(在这种情况下为“ a”)开头的项目。实施后再用列表解析执行相同的操作。猜猜哪个会写起来更快呢?
lst [Acer, Asus, Lenovo, HP]# regular function
def starts_with_a(lst): valids [] for word in lst: if word[0].lower() a: valids.append(word) return valids # list comprehension
lst_comp [word for word in lst if word[0].lower() a]# results
print(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]for s1, s2 in zip(sales_north,sales_south): print(s1 — s2) -201 33 -351 115 136 151 -94
看看这有多么简单吧。可以应用相同的逻辑同时迭代3个数组只需要在括号中添加“ s3”和其他一些列表名称即可。
结语
Pure Python真的非常强大。了解其功能后就不再需要专门的库来存放所有内容了。这将帮助你成为一名更好的程序员。
练习这些技能、掌握它们并将其应用到日常工作中。无论是仅仅为了娱乐、完成学业还是工作你都不会后悔的。
阅读目录置顶)(长期更新计算机领域知识
阅读目录置顶)(长期更新计算机领域知识
阅读目录置顶)(长期科技领域知识
歌谣带你看java面试题