盘点那些鲜为人知却非常实用的Python数据科学库
前言
Python是一门神奇的语言。它是世界上发展最快的编程语言之一。它一次又一次地证明了它在跨行业的开发人员工作角色和数据科学职位上的有用性。Python的整个生态系统及其库使其成为全世界用户(初学者和高级用户)的一个恰当选择。它的成功和流行的一个原因是它的健壮的库集的存在,使它如此动态和快速。
在本文中,我们将查看一些用于数据科学任务的Python库,而不是一些常用的库,如pandas、scikit-learn、matplotlib等。虽然像pandas和scikit-learn这样的库是机器学习居家必备,但是了解这个领域的其他python产品总是好的,因为你不知道什么时候就会用到。
Wget
数据提取,尤其是从网络中提取数据,是数据科学家的重要任务之一。Wget是一个免费的工具,用于从Web下载非交互式文件。它支持HTTP、HTTPS和FTP协议,以及通过HTTP代理进行检索。由于它是非交互式的,所以即使用户没有登录,它也可以在后台工作。所以,下次你想下载一个网站或所有的图像从一个页面,wget会帮助你。
如何安装:
$ pip install wget
import wgeturl = 'http://www.futurecrew.com/skaven/song_files/mp3/razorback.mp3'filename = wget.download(url)100% [................................................] 3841532 / 3841532filename'razorback.mp3'
Pendulum
对于那些在python中使用日期时间时感到沮丧的人来说,钟摆就在这里。它是一个用于简化datetimes操作的Python包。它完全可以替代Python的原生类。深入工作请参阅文档。
如何安装:
$ pip install pendulum
举例:
import pendulumdt_toronto = pendulum.datetime(2012, 1, 1, tz='America/Toronto')dt_vancouver = pendulum.datetime(2012, 1, 1, tz='America/Vancouver')print(dt_vancouver.diff(dt_toronto).in_hours())3
imbalanced-learn
事实上,大多数分类算法在每个类的样本数量几乎相同的情况下工作得最好。但现实生活中存在大量的不平衡数据集,这些数据集对机器学习算法的学习阶段和后续预测都有影响。幸运的是,创建这个库是为了解决这个问题。它与scikit-learn兼容,是scikit-learn-contrib项目的一部分。下次遇到不平衡的数据集时,请尝试一下。
如何安装:
pip install -U imbalanced-learn# orconda install -c conda-forge imbalanced-learn
FlashText
在NLP任务中清理文本数据通常需要替换句子中的关键字或从句子中提取关键字。通常,这类操作通常使用正则表达式来完成,但是如果要搜索的术语数量达到数千个,就会变得很麻烦。基于FlashText算法的Python的FlashText模块为这种情况提供了一个合适的替代方案。FlashText最好的部分是,不管搜索词的数量是多少,运行时都是一样的。你可以在这里了解更多。
如何安装:
$ pip install flashtext
举例:
- 提取关键词
from flashtext import KeywordProcessorkeyword_processor = KeywordProcessor()# keyword_processor.add_keyword(<unclean name>, <standardised name>)keyword_processor.add_keyword('Big Apple', 'New York')keyword_processor.add_keyword('Bay Area')keywords_found = keyword_processor.extract_keywords('I love Big Apple and Bay Area.')keywords_found['New York', 'Bay Area']
- 替换关键词
keyword_processor.add_keyword('New Delhi', 'NCR region')new_sentence = keyword_processor.replace_keywords('I love Big Apple and new delhi.')new_sentence'I love New York and NCR region.'
Fuzzywuzzy
这个名字听起来确实很奇怪,但是当涉及到字符串匹配时,fuzzywuzzy是一个非常有用的库。可以快速实现诸如字符串比较比率、令牌比率等操作。它还可以方便地匹配保存在不同数据库中的记录。
如何安装:
$ pip install fuzzywuzzy
举例:
from fuzzywuzzy import fuzzfrom fuzzywuzzy import process# Simple Ratiofuzz.ratio('this is a test', 'this is a test!')97# Partial Ratiofuzz.partial_ratio('this is a test', 'this is a test!') 100
PyFlux
时间序列分析是机器学习领域最常遇到的问题之一。PyFlux是为处理时间序列问题而显式构建的Python开源库。该图书馆拥有一系列优秀的现代时间序列模型,包括但不限于ARIMA、GARCH和VAR模型。总之,PyFlux为时间序列建模提供了一种概率方法。值得尝试。
如何安装:
pip install pyflux
Ipyvolume
交流结果是数据科学的一个重要方面。能够可视化结果是一个很大的优势。IPyvolume是一个Python库,用于在Jupyter笔记本中可视化3d卷和符号(例如,3d散点图),只需要很少的配置和工作。然而,它目前还处于1.0之前的阶段。一个很好的类比是这样的:IPyvolume的volshow之于3d数组,就像matplotlib的imshow之于2d数组。你可以在这里了解更多。
如何安装:
Using pip$ pip install ipyvolumeConda/Anaconda$ conda install -c conda-forge ipyvolume
举例:
体绘制
Dash
Dash是一个用于构建web应用程序的高效Python框架。它是写在烧瓶上,扑通扑通。和response .js,并将现代UI元素(如下拉框、滑块和图形)与您的分析性Python代码绑定在一起,而不需要javascript。Dash非常适合构建数据可视化应用。然后可以在web浏览器中呈现这些应用程序。用户指南可以在这里访问。
如何安装:
pip install dash==0.29.0 # The core dash backendpip install dash-html-components==0.13.2 # HTML componentspip install dash-core-components==0.36.0 # Supercharged componentspip install dash-table==3.1.3 # Interactive DataTable component (new!)
举例:
下面的示例显示了一个具有下拉功能的高度交互式图形。当用户在下拉菜单中选择一个值时,应用程序代码动态地将来自谷歌Finance的数据导出到panda DataFrame中
Bashplotlib
Bashplotlib是一个python包和命令行工具,用于在终端中生成基本的绘图。纯粹用python编写,当用户无法访问GUI时,可视化数据就变得很方便。
如何安装:
pip install bashplotlib#or$ git clone git@github.com:glamp/bashplotlib.git$ cd bashplotlib$ python setup.py install
举例:
scatter --file data/texas.txt --pch .
hist --file data/exp.txt
Colorama
Colorama为Python中的终端输出着色。它使用标准的ANSI转义码来着色和样式终端输出。有时候,给终端上的日志涂上颜色是个好主意,这样如果有什么地方出错,它就会脱颖而出。尽管可以通过使用转义字符手动着色输出,但这是一项非常冗长乏味的任务。Colorama提供了一个简单的解决方案。只需将它包含到脚本中,并添加任何要着色的文本。
如何安装:
pip install colorama
举例:
运行以下脚本,看看文本的颜色在不同选项下是如何变化的。
import coloramafrom colorama import Fore, Back, Stylecolorama.init()# Set the color semi-permanentlyprint(Fore.CYAN)print('The Text will appear in cyan until it is reset')print(Style.RESET_ALL)# Colorize a single line and then resetprint(Fore.RED + 'Colorize a single line in RED' + Style.RESET_ALL)# Colorize a single word in the outputprint('You can also colorize a single word' + Back.GREEN + 'words' + Style.RESET_ALL + ' can be highlighted')# Combine foreground and background colorprint(Fore.BLUE + Back.WHITE)print('Foreground, background, and styles can be combined')print('========== ')print(Style.RESET_ALL)print('Reset everything back to normal.')
总结
这些是我为数据科学挑选的有用的python库,而不是像numpy、panda之类的常见库。如果你知道其他可以添加到列表中的,请在下面的评论中提及。不要忘记尝试它们。
原文链接:
https://medium.com/analytics-vidhya/python-libraries-for-data-science-other-than-pandas-and-numpy-95da30568fad