Python数据科学“冷门”库

2019-07-30 19:46:59 浏览数 (1)

原标题 | Lesser Known Python Libraries for Data Science 作者 | Parul Pandey 译者 | CONFIDANT(福建师范大学)、Seabiscuit、唐里、david95(研发工程师)

图源:Unsplash上的Hitesh Choudhary

Python是一门神奇的语言。事实上,它是世界上发展最快的编程语言之一。它已经一次又一次地证明了它在跨行业的开发人员职位和数据科学职位上的实用性。Python的整个生态系统及其库使其成为全世界用户(初学者和高级用户)的最佳选择。它的成功和流行的原因之一是它的健壮库集的存在,这些库使它能够做到非常动态和快速。

在本文中,我们将研究一些用于数据科学任务的Python库,而不是常用的Python库,如panda、scikit-learn、matplotlib等。虽然像panda和scikit-learn这样的库是机器学习任务的默认名称,但是了解这个领域中的其他 python 应用总是好的。

Wget

抽取数据特别是从网络上爬取数据是数据科学家的一项重要任务。Wget是一个免费的实用的从网上下载文件的非交互式的命令行工具。它支持HTTP,HTTPS和FTP协议,同时也支持通过HTTP代理进行检索。因为它是非交互式的,所以它可以在即使没有登录的情况下也能工作。所以下次你想下载一个网页或者是从网页中下载图片,Wget可以帮助你。

安装:

代码语言:javascript复制
$ pip install wget

例子:

Pendulum

对于那些处理日期时间数据而感到沮丧的人来说,Pendulum就是为这些人准备的。这是一个为减轻日期和时间操作设计的Python包。它是Python内置的类的一个替代。需要深入工作可以参考文档: https://pendulum.eustace.io/docs/#installation

安装:

代码语言:javascript复制
$ pip install pendulum

例子:

imbalanced-learn

可以看出,大多数分类算法在每个类的样本数量几乎相同的情况下,即平衡状态下,分类效果最好。但现实生活中存在大量的不平衡数据集,这些数据集对机器学习算法的学习阶段和后续预测都有一定的影响。幸运的是,创建这个库是为了解决这个问题。它与scikit-learn兼容,是scikit-learn-contrib项目的一部分。下次遇到不平衡的数据集时,可以尝试一下。

安装:

代码语言:javascript复制
pip install -U imbalanced-learn
# or
conda install -c conda-forge imbalanced-learn

有关用法和示例,请参考文档:

http://imbalanced-learn.org/en/stable/api.html

FlashText

在NLP任务中清理文本数据通常需要替换句子中的关键字或从句子中提取关键字。通常,这类操作可以使用正则表达式来完成,但是如果要搜索的术语数达到数千,就会变得很麻烦。Python的FlashText模块基于FlashText算法,为这种情况提供了一个合适的替代方案。FlashText最好的地方在于,无论搜索项的数量如何,运行时都是相同的。

安装:

代码语言:javascript复制
$ pip install flashtext

例子:

提取关键字

替换关键字

有关更多使用示例,请参考官方文档:

https://flashtext.readthedocs.io/en/latest/#

Fuzzywuzzy

这个名字听起来有点奇怪,但是fuzzywuzzy是一个很有用的用于字符串匹配的库。可以用它轻松的实现例如字符串比较比例、单词比例。它还可以很容易的用于匹配记录,即使他们是在不同的数据库的。

安装:

代码语言:javascript复制
$ pip install fuzzywuzzy

例子:

代码语言:javascript复制
from fuzzywuzzy import fuzz
from fuzzywuzzy import process
# Simple Ratio
fuzz.ratio("this is a test", "this is a test!")
97
# Partial Ratio
fuzz.partial_ratio("this is a test", "this is a test!")
 100

更多有趣的例子,可以访问这里:

https://github.com/seatgeek/fuzzywuzzy

PyFlux

时间序列分析是机器学习领域最经常遇到的问题之一。PyFlux就是专门针对时间序列问题设计的一个开源库。这个库有着优秀的时间序列模型,包含ARIMA、GARCH和VAR模型。总之,PyFlux提供了一个基于概率的方法来组织时序模型,很值得一试。

安装:

代码语言:javascript复制
pip install pyflux

具体试用方法和例子,请参考文档:

https://pyflux.readthedocs.io/en/latest/index.html

Ipyvolume

沟通结果是数据科学的一个重要方面。 能够将结果可视化是一个显著的优势。Ipyvolume是一个Python库,用于在Jupyter笔记本中可视化3d体积和字形(例如3d散点图),并且配置和工作量的需求很少。但是,它目前处于测试阶段。一个很好的比喻:IPyvolume的volshow之于3d数组,就像matplotlib的imshow之于2d数组一样。你可以通过原文了解更多关于它的内容。

安装:

代码语言:javascript复制
Using pip
$ pip install ipyvolume
Conda/Anaconda
$ conda install -c conda-forge ipyvolume

例子:

  • 动图
  • 体绘图

Dash

Dash是一个用于构建web应用程序的高效Python框架。它写在Flask上,

Plotly.js和response .js以及下拉菜单、滑块和图形等现代UI元素会绑定到您的分析Python代码中,而不需要javascript。Dash非常适合构建数据可视化应用程序。然后可以在web浏览器中呈现这些应用程序。用户指南可以在这里访问。

安装:

例子:

下面的示例展示了一个具有下拉功能的高度交互式图。当用户在下拉菜单中选择一个值时,应用程序代码将动态地将数据从谷歌Finance导出到panda DataFrame中。

Gym

来自OpenAI的Gym是一个开发和比较强化学习算法的工具箱。它兼容任何数值计算库,如TensorFlow或Theano。健身房图书馆必然是一个测试问题的集合,也称为环境——你可以用它来制定你的强化学习算法。这些环境有一个共享接口,允许您编写通用算法。

安装:

代码语言:javascript复制
pip install gym

例子:

一个将要运行1000个CartPole-v0时间步长环境实例,每一步都会呈现其环境。

你可以通过下方链接了解其他环境:

https://gym.openai.com/

结论

这些是我为数据科学选择的有用python库,而不是常见的如numpy、panda等。如果你知道还有哪些可以添加到列表中的,请评论中告知我。

最后,别忘了试一试!


本文编辑:王立鱼

英语原文:https://medium.com/analytics-vidhya/python-libraries-for-data-science-other-than-pandas-and-numpy-95da30568fad

0 人点赞