小众Python库介绍
Python 是世界上发展最快的编程语言之一。它一次又一次地证明了自己在开发人员和跨行业的数据科学中的实用性。Python 及其机器学习库的整个生态系统使全世界的用户(无论新手或老手)都愿意选择它。Python 成功和受欢迎的原因之一是存在强大的库,这些库使 Python 极具创造力且运行快速。然而,使用 Pandas、Scikit-learn、Matplotlib 等常见库在解决一些特殊的数据问题时可能并不实用,本文介绍的这些非常见库可能更有帮助。
WGET
提取数据,特别是从网络中提取数据是数据科学家的重要任务之一。Wget 是一个免费的工具,用于以非交互式方式从 Web 上下载文件。它支持 HTTP、HTTPS 和 FTP 协议,通过 HTTP 代理进行检索。由于它是非交互式的,即使用户没有登录,它也可以在后台工作。所以,如果你想下载一个网站或一个页面上的所有图片,wget 会帮助你。
安装:
$ pip install wget
示例:
import wget
url = 'http://www.futurecrew.com/skaven/song_files/mp3/razorback.mp3'
filename = wget.download(url)
100% [................................................] 3841532 / 3841532
filename
'razorback.mp3'
对于那些在 python 中被处理datetimes困扰的人来说,Pendulum 是个好选择。它是一个 Python 包,用于简化 datetimes 操作。它是 Python「本机」类(native class)的代替。更多内容,请参阅文档:https://um.eustace.io/docs/# installation。
安装:
$ pip install pendulum
示例:
import wget
url = 'http://www.futurecrew.com/skaven/song_files/mp3/razorback.mp3'
filename = wget.download(url)
100% [................................................] 3841532 / 3841532
filename
'razorback.mp3'
IMBALANCED-LEARN
可以看出,当每个类的样本数量相等即平衡时,大多数分类算法的工作效果最好。但现实生活中充满了不平衡的数据集,这些数据集对机器学习的学习阶段和后续预测都有影响。创建这个库是为了解决这个问题。它与 scikit-learn 兼容,并且是 scikit-learn-contrib 项目的一部分。下次遇到不平衡的数据集时,可以尝试一下。
安装:
pip install -U imbalanced-learn
# or
conda install -c conda-forge imbalanced-learn
示例:
有关用法和示例,请参考:http://imbalancedlearn.org/en/stable/api.html。
FLASHTEXT
在 NLP 任务中,清理文本数据通常需要替换句子中的关键词或从句子中提取关键词。通常,这样的操作可以用正则表达式来完成,但是如果要搜索的词汇量过大,操作就会变得麻烦。Python 中基于 FlashText 算法的 FlashText 模块,为这种情况提供了一个合适的替代方案。FlashText 最大的优点是搜索词数量不影响运行时长。更多相关信息请见:https://flashtext.readthedocs.io/en/latest/#。
安装:
$ pip install flashtext
示例
提取关键词:
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']
替换关键词:
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 是一个非常有用的库,可以很容易地实现诸如字符串比较比率、token 比率等操作。对于匹配不同数据库中的记录也很方便。
安装:
$ pip install fuzzywuzzy
示例:
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
更多有趣的例子可以在 GitHub 上找到:https://github.com/seatgeek/fuzzywuzzy。
PYFLUX
时间序列分析是机器学习领域最常见的问题之一。PyFlux 是 Python 中为处理时间序列问题而创建的开源库。该库有一系列极好的时间序列模型,包括但不限于 ARIMA、 GARCH 和 VAR 模型。简而言之,PyFlux 提供了一个时间序列建模的概率方法。值得尝试。
安装:
pip install pyflux
示例:
有关用法和示例,请参考:https://pyflux.readthedocs.io/en/latest/index.html。
IPYVOLUME
交流结果是数据科学的一个基本方面。能够将结果可视化是一个很大的优势。IPyvolume 是一个用于在 Jupyter notebook 中可视化 3d 体积和字形(如 3d 散点图)的 Python 库,只需少量配置即可。然而,它目前还处于前 1.0 版。IPyvolume 的 volshow 之于 3d 数组,就像 matplotlib 的 imshow 之于 2d 数组一样。更多相关信息请见:https://ipyvolume.readthedocs.io/en/latest/?badge=latest。
安装:
Using pip
$ pip install ipyvolume
Conda/Anaconda
$ conda install -c conda-forge ipyvolume
DASH
Dash 是一个用于构建 web 应用程序的高效 Python 框架。它写在 Flask、Plotly.js 和 React.js 之上,将下拉列表、滑块和图形等 UI 元素与你的分析性 Python 代码直接相连,无需 javascript。Dash 非常适合构建数据可视化应用程序。然后这些应用程序可以在 web 浏览器中进行渲染。用户指南请见:https://dash.plot.ly/。
安装:
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 的数据导出为 Pandas DataFrame。资源:https://gist.github.com/chriddyp/3d2454905d8f01886d651f207e2419f0。

GYM
来自 OpenAI 的 Gym 是一个开发和对比强化学习算法的工具包。它兼容于任何数值计算库,如 TensorFlow 或 Theano。Gym 库是一个测试问题的集合,也被称为环境——可以用它来计算你的强化学习算法。这些环境有一个共享的接口,允许你写通用算法。
安装:
pip install gym
示例:
运行环境 CartPole-v0 的 1000 个时间步骤实例,在每个步骤渲染环境。

阅读其他环境请见:https://gym.openai.com/。
结论
这些是作者为数据科学挑选的实用 python 库,而非常见的 numpy、panda 等。值得一试。
小众Python库介绍的更多相关文章
- 利用Python进行数据分析——重要的Python库介绍
利用Python进行数据分析--重要的Python库介绍 一.NumPy 用于数组执行元素级计算及直接对数组执行数学运算 线性代数运算.傅里叶运算.随机数的生成 用于C/C++等代码的集成 二.pan ...
- 机器学习 python库 介绍
开源机器学习库介绍 MLlib in Apache Spark:Spark下的分布式机器学习库.官网 scikit-learn:基于SciPy的机器学习模块.官网 LibRec:一个专注于推荐算法的j ...
- Python数据分析Python库介绍(1)
一直想写点Python的笔记了,今天就闲着无聊随便抄点,(*^__^*) 嘻嘻…… ---------------------------------------------------------- ...
- Python的标准库介绍与常用的第三方库
Python的标准库介绍与常用的第三方库 Python的标准库: datetime:为日期和时间的处理提供了简单和复杂的方法. zlib:以下模块直接支持通用的数据打包和压缩格式:zlib,gzip, ...
- [python爬虫]Requests-BeautifulSoup-Re库方案--Requests库介绍
[根据北京理工大学嵩天老师“Python网络爬虫与信息提取”慕课课程编写 文章中部分图片来自老师PPT 慕课链接:https://www.icourse163.org/learn/BIT-10018 ...
- python 数据分析库介绍
1 引言 高效处理数据的python工具: 与外界进行交互: 读写各种文件格式和数据库 准备: 对数据进行清理.修整.整合.规范化.重塑.切片切换.变形等处理以便进行分析 转换: 对数据集做一些数学和 ...
- 11个并不广为人知,但值得了解的Python库
这是一篇译文,文中提及了一些不常见但是有用的Python库 原文地址:http://blog.yhathq.com/posts/11-python-libraries-you-might-not-kn ...
- python自动化测试(4)-使用第三方python库技术实现
python自动化测试(4)-使用第三方python库技术实现 1 概述 关于测试的方法论,都是建立在之前的文章里面提到的观点: 功能测试不建议做自动化 接口测试性价比最高 接口测试可以做自动化 ...
- 从零开始学Python第0周:Python基本介绍(部分内容来源于网络)
Python入门介绍 一,Python的基本介绍 (1)概要 Python是一种解释型,面向对象,动态数据类型的高级程序设计语言.常被广泛用于处理系统管理任务和web编程.现如今Python已经成为了 ...
随机推荐
- python kafka client--confluent-kafka-python
项目中需要使用python 向Kafka生产和消费数据,最初使用pykafka .后来发现pykafka不支持client.id. 最后,终于找到confluent-kafka. python kaf ...
- Qt中的标准对话框之QMessageBox
1. Qt标准对话框 Qt为开发者提供了一些可复用的对话框类型 Qt提供的可复用对话框全部继承自QDialog类 Qt中的对话框的使用方式和QDialog完全一致 2. 标准对话框的使用步骤 ①定义对 ...
- CentOS 6.5 下源码搭建LAMP环境
参考网站: http://wenku.baidu.com/link?url=Cvkqss2E9mnxXOZigMWPaCfqwsBxnm0sZ4aKE2oLAgQ888XxeC0DWOChxVqiHz ...
- 阅读<All Digital VCXO Replacement for Gigabit Transceiver Applications>笔记---XAPP589
阅读<All Digital VCXO Replacement for Gigabit Transceiver Applications>笔记---XAPP589 1. 2. 外部设备能为 ...
- 阅读DMA Controller Core 官方手册
阅读DMA Controller Core 官方手册 DMA控制器框架图 怎样去设定一个DMA控制器 实例化DMA控制器 参数配置界面如下图所示: 对于width of the DMA length ...
- OEM、ODM、OBM、OPM概念,作用与区别
名词解释1:OEM是Original Equipment Manufacture(原始设备制造商)的缩写,它是指一种"代工生产"方式,其含义是生产者不直接生产产品,而是利用自己掌握 ...
- windows下安装redis以及测试 --转载自http://www.cnblogs.com/lpyan/p/5608333.html
redis加入到Windows 服务 以下方式,需要在redis-2.8.24下执行:http://download.csdn.net/download/feiliua/9425770 ,另外php的 ...
- html文件form表单action调用servlet连接mysql数据库实例
web.xml文件 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi=&qu ...
- 关键两招就解决Wampserver 打开localhost显示IIS7图片问题
我们在安装集成环境Wampserver之后,有时会遇到一个问题, 打开localhost显示一张IIS7图片,这个问题该如何解决呢,我在网上找了一些说的都很乱,我在这里简单整理了一下解决方法 1 ...
- GoJS拖动设计
http://192.168.0.149:8035/gojs/intro/groups.html http://192.168.0.149:8035/gojs/intro/ports.html htt ...