在本文中,我们将介绍一些用于数据科学方面的Python库,它们并不像pandas、scikit-learn 和 matplotlib那么知名,但一样非常实用的库。欢迎大家评论区补充~
1、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
2、Pendulum
如果你还在苦恼Python中时间日期的处理,那么你需要Pendulum。它是一个Python包,用于简化datetime操作。它是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
3、Imbalanced-learn
大多数分类算法在每个类的样本数量几乎都是一样的情况下是最有效的,但实际工作中大多数是不平衡的数据集,这些数据集对机器学习算法的学习阶段和后续预测都可能有影响。幸运的是,创imbalance -learn库可以解决这个问题。它与scikit-learn兼容,是scikit- learning -contrib项目的一部分。下次遇到不平衡的数据集的情况,请别忘了它。
安装:
代码语言:javascript复制pip install -U imbalanced-learn
# or
conda install -c conda-forge imbalanced-learn
4、FlashText
在自然语言处理(NLP)任务中清理文本数据通常需要替换关键字或从句子中提取关键字。通常,这样的操作可以用正则表达式来完成,但是如果要搜索的词汇量达到数千,那么这些操作就会变得很繁琐。
Python的FlashText模块基于FlashText算法,为这种情况提供了合适的替代方案。FlashText最棒的地方是,它的运行与你的搜索量无关。
安装:
代码语言:javascript复制$ pip install flashtext
例子:
1)提取关键词
代码语言: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 ]
2)替代关键词
代码语言: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.
5、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
6、PyFlux
时间序列分析是机器学习中最常见的问题之一。PyFlux是Python中的一个开源库,它是为处理时间序列问题而构建的。该库拥有一系列很优秀的现代时间序列模型,诸如ARIMA、GARCH和VAR模型等。简而言之,PyFlux提供了一种时间序列建模的概率方法。
安装:
代码语言:javascript复制pip install pyflux
7、IPyvolume
数据科学很重要的一部分就是交流结果,可视化结果显示可以给你提供一个巨大的优势。IPyvolume是一个Python库,用于可视化Jupyter笔记本中的3D容量和符号(例如3D散点图),只需少量的配置。
安装 :
代码语言:javascript复制Using pip
$ pip install ipyvolume
Conda/Anaconda
$ conda install -c conda-forge ipyvolume
例子:
绘制
8、Dash
Dash是一个用于构建web应用程序的高效Python框架。它基于FlaskPlotty.js 和 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!)
例子:
下面的示例显示了具有下拉功能的高度交互式图。当用户在下拉菜单中选择一个值时,应用程序代码将动态地将数据从Google Finance 导出到panda DataFrame。
9、Gym
Gym是开发和对比强化学习算法的工具,它兼容任何数据科学库,如TensorFlow或Theano。是一个测试问题的集合,也叫环境,你可以用它来计算强化学习算法。这些环境有一个共享接口,允许用户编写通用算法。
安装:
代码语言:javascript复制pip install gym
例子:
以下示例将在 CartPole-v0环境中,运行 1000 次,在每一步渲染环境。