前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >盘点那些鲜为人知却非常实用的Python数据科学库

盘点那些鲜为人知却非常实用的Python数据科学库

作者头像
HuangWeiAI
发布2020-02-24 12:48:39
8500
发布2020-02-24 12:48:39
举报
文章被收录于专栏:浊酒清味

前言

原文:见文末阅读原文

作者:Parul Pandey

编译:HuangweiAI

Python是一门神奇的语言。它是世界上发展最快的编程语言之一。它一次又一次地证明了它在跨行业的开发人员工作角色和数据科学职位上的有用性。Python的整个生态系统及其库使其成为全世界用户(初学者和高级用户)的一个恰当选择。它的成功和流行的一个原因是它的健壮的库集的存在,使它如此动态和快速。

在本文中,我们将查看一些用于数据科学任务的Python库,而不是一些常用的库,如pandas、scikit-learn、matplotlib等。虽然像pandas和scikit-learn这样的库是机器学习居家必备,但是了解这个领域的其他python产品总是好的,因为你不知道什么时候就会用到。

Wget

数据提取,尤其是从网络中提取数据,是数据科学家的重要任务之一。Wget是一个免费的工具,用于从Web下载非交互式文件。它支持HTTP、HTTPS和FTP协议,以及通过HTTP代理进行检索。由于它是非交互式的,所以即使用户没有登录,它也可以在后台工作。所以,下次你想下载一个网站或所有的图像从一个页面,wget会帮助你。

如何安装:

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

举例:

代码语言:javascript
复制
import wget
url = 'http://www.futurecrew.com/skaven/song_files/mp3/razorback.mp3'

filename = wget.download(url)
100% [................................................] 3841532 / 3841532

filename
'razorback.mp3'

Pendulum

对于那些在python中使用日期时间时感到沮丧的人来说,钟摆就在这里。它是一个用于简化datetimes操作的Python包。它完全可以替代Python的原生类。深入工作请参阅文档。

如何安装:

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

举例:

代码语言:javascript
复制
import pendulum

dt_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项目的一部分。下次遇到不平衡的数据集时,请尝试一下。

如何安装:

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

FlashText

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

如何安装:

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

举例:

  • 提取关键词
代码语言:javascript
复制
from flashtext import KeywordProcessor
keyword_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']
  • 替换关键词
代码语言:javascript
复制
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是一个非常有用的库。可以快速实现诸如字符串比较比率、令牌比率等操作。它还可以方便地匹配保存在不同数据库中的记录。

如何安装:

代码语言: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

PyFlux

时间序列分析是机器学习领域最常遇到的问题之一。PyFlux是为处理时间序列问题而显式构建的Python开源库。该图书馆拥有一系列优秀的现代时间序列模型,包括但不限于ARIMA、GARCH和VAR模型。总之,PyFlux为时间序列建模提供了一种概率方法。值得尝试。

如何安装:

代码语言:javascript
复制
pip install pyflux

Ipyvolume

交流结果是数据科学的一个重要方面。能够可视化结果是一个很大的优势。IPyvolume是一个Python库,用于在Jupyter笔记本中可视化3d卷和符号(例如,3d散点图),只需要很少的配置和工作。然而,它目前还处于1.0之前的阶段。一个很好的类比是这样的:IPyvolume的volshow之于3d数组,就像matplotlib的imshow之于2d数组。你可以在这里了解更多。

如何安装:

代码语言:javascript
复制
Using pip
$ pip install ipyvolume

Conda/Anaconda
$ conda install -c conda-forge ipyvolume

举例:

体绘制

Dash

Dash是一个用于构建web应用程序的高效Python框架。它是写在烧瓶上,扑通扑通。和response .js,并将现代UI元素(如下拉框、滑块和图形)与您的分析性Python代码绑定在一起,而不需要javascript。Dash非常适合构建数据可视化应用。然后可以在web浏览器中呈现这些应用程序。用户指南可以在这里访问。

如何安装:

代码语言:javascript
复制
pip install dash==0.29.0  # The core dash backend
pip install dash-html-components==0.13.2  # HTML components
pip install dash-core-components==0.36.0  # Supercharged components
pip install dash-table==3.1.3  # Interactive DataTable component (new!)

举例:

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

Bashplotlib

Bashplotlib是一个python包和命令行工具,用于在终端中生成基本的绘图。纯粹用python编写,当用户无法访问GUI时,可视化数据就变得很方便。

如何安装:

代码语言:javascript
复制
pip install bashplotlib

#or
$ git clone git@github.com:glamp/bashplotlib.git
$ cd bashplotlib
$ python setup.py install

举例:

代码语言:javascript
复制
scatter --file data/texas.txt --pch .
代码语言:javascript
复制
hist --file data/exp.txt

Colorama

Colorama为Python中的终端输出着色。它使用标准的ANSI转义码来着色和样式终端输出。有时候,给终端上的日志涂上颜色是个好主意,这样如果有什么地方出错,它就会脱颖而出。尽管可以通过使用转义字符手动着色输出,但这是一项非常冗长乏味的任务。Colorama提供了一个简单的解决方案。只需将它包含到脚本中,并添加任何要着色的文本。

如何安装:

代码语言:javascript
复制
pip install colorama

举例:

运行以下脚本,看看文本的颜色在不同选项下是如何变化的。

代码语言:javascript
复制
import colorama
from colorama import Fore, Back, Style
colorama.init()
# Set the color semi-permanently
print(Fore.CYAN)
print("The Text will appear in cyan until it is reset")
print(Style.RESET_ALL)
# Colorize a single line and then reset
print(Fore.RED + 'Colorize a single line in RED' + Style.RESET_ALL)
# Colorize a single word in the output
print('You can also colorize a single word' + Back.GREEN + 'words' + Style.RESET_ALL + ' can be highlighted')
# Combine foreground and background color
print(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之类的常见库。如果你知道其他可以添加到列表中的,请在下面的评论中提及。不要忘记尝试它们。

·END·

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-02-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python与机器学习之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档