Python是一种神奇的语言。事实上,它是近几年世界上发展最快的编程语言之一,它一次又一次证明了它在开发工作和数据科学立场各行业的实用性。整个Python系统和库是对于世界各地的用户(无论是初学者或者高级)都是一个恰当的选择。其成功和受欢迎的原因之一是它强大的库,这些库使其具有动态性和快速性。

在本文中,我们将看到一些除了常用的像pandas、scikit-learn、 matplotlib之外的数据科学任务的Python库。虽然一看见像pandas,scikit-learn这些库就让人脑子浮现出机器学习任务,但了解并学习这个领域的其他python库总归是有益的。

1、Wget

从网页提取数据是数据科学家的重要任务之一。Wget是一个免费的非交互性的从网上下载文件的实用工具。它支持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'

2、Pendulum

对于那些在python中使用日期时间感到沮丧的,可以使用Pendulum。它是一个python包,可以缓解日期时间操作,是一个python的原生类替代。如果想深入了解请参考该文档

安装:

$ pip install pendulum

例子:

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

我看到过大多数分类算法效果,每个类的样本数量几乎是相同的,如balanced。但是现实生活情况下大部分是不平衡数据集,它会影响学习阶段和随后的机器学习算法的预测。幸运的是,创建了这个imbalanced库来解决这个问题。它兼容了scikit-learn并且是scikit-learn-contrib项目的一部分。当下次遇到不平衡数据集,可以尝试使用这个库。

安装:

pip install -U imbalanced-learn #or conda install -c conda-forge imbalanced-learn

例子:

用法和例子请参考文档

4、FlashText

NLP任务中清理文本数据常常需要在句子中换关键字或从句子中提取关键字。通常,这些操作可以用正则表达式来完成,但如果搜索方面遇到了数以千计的数量,可能会成为麻烦。Python的FlashText模块,该模块基于FlashText算法提供了恰当的替代等情况。FlashText最好的部分是运行时间与搜索词的数量无关,你可以在这里了解更多。

安装:

$ 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.'

5、Fuzzywuzzy

这个名字听起来确实很奇怪,但在处理字符串匹配时,fuzzywuzzy是一个非常有用的库,可以轻松实现操作,比如字符串比较比率,令牌比率等。它也方便匹配保存在不同数据库的记录。

安装:

$ 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 repo找到更多有趣的例子。

6、PyFlux

时间序列分析是机器学习领域最常见的问题之一。PyFlux是一个在Python中为了时间序列问题而建立的开源库。该库有一个良好的现代时间序列模型包括但不限于ARIMA、GARCH和VAR模型。简而言之,PyFlux针对时间序列建模提供了一种概率方法,值得一试。

安装:

pip install pyflux

例子:

用法例子请参考相关文档

7、Ipyvolume

结果可视化是数据科学的一个重要方面。能够可视化结果具有很大的优势。 IPyvolume是一个Python库,只需最少的配置和精力就可以在Jupyter notebook中可视化3d体积和字形(例如3d散点图)。但是,它目前处于1.0之前的阶段。一个很好的比喻是这样的:IPyvolume的volshow是3d数组而matplotlib的imshow是2d数组。你可以在这里读更多关于它的内容。

安装:

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

例子:

动画

立体渲染

8、Dash

Dash是一个用于构建Web应用程序的高效Python框架。它写在Flask,Plotly.js和React.js之上,并将现有的UI元素(如下拉列表,滑块和图形)与你的分析Python代码联系起来,而无需使用javascript。Dash非常适合构建数据可视化应用程序,然后可以在Web浏览器中呈现这些应用程序。用户指南可在此处访问。

安装

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财经中的数据动态导出到Pandas DataFram中。

源代码

9、Gym

OpenAI的Gym是一个用于开发和比较强化学习算法的工具包。它与任何数值计算库兼容,如TensorFlow或Theano。Gym库是测试问题的必要集合,也称为环境 – 你可以使用它来训练强化学习算法。这些环境具有共享接口,允许编写通用算法。

安装

pip install gym

例子

以下是运行环境CartPole-v0中1000个步骤的实例的例子,在每个步骤渲染环境。

你可以在这里了解更多的环境。

结论

这些是我选的对于数据科学有用的python库,而不是常见的如numpy,pandas等。如果你知道可以添加到列表中的其他库,请在下面的评论中提及。别忘了尝试一下。

原文链接
本文为云栖社区原创内容,未经允许不得转载。

Python数据科学“冷门”库的更多相关文章

  1. Matplotlib 使用 - 《Python 数据科学手册》学习笔记

    一.引入 import matplotlib as mpl import matplotlib.pyplot as plt 二.配置 1.画图接口 Matplotlib 有两种画图接口: (1)一个是 ...

  2. 干货!小白入门Python数据科学全教程

    前言 本文讲解了从零开始学习Python数据科学的全过程,涵盖各种工具和方法 你将会学习到如何使用python做基本的数据分析 你还可以了解机器学习算法的原理和使用 说明 先说一段题外话.我是一名数据 ...

  3. Python数据科学手册

    Python数据科学手册(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1KurSdjNWiwMac3o3iLrzBg 提取码:qogy 复制这段内容后打开百度网盘手 ...

  4. 《Python数据科学手册》第五章机器学习的笔记

    目录 <Python数据科学手册>第五章机器学习的笔记 0. 写在前面 1. 判定系数 2. 朴素贝叶斯 3. 自举重采样方法 4. 白化 5. 机器学习章节总结 <Python数据 ...

  5. Python数据科学手册Seaborn马拉松可视化里时分秒转化为秒数的问题

    Python数据科学手册Seaborn马拉松可视化里时分秒转化为秒数的问题 问题描述: 我实在是太懒了,问题描述抄的网上的哈哈哈:https://www.jianshu.com/p/6ab7afa05 ...

  6. python书籍推荐:Python数据科学手册

    所属网站分类: 资源下载 > python电子书 作者:today 链接:http://www.pythonheidong.com/blog/article/448/ 来源:python黑洞网 ...

  7. Python数据科学安装Numby,pandas,scipy,matpotlib等(IPython安装pandas)

    Python数据科学安装Numby,pandas,scipy,matpotlib等(IPython安装pandas) 如果还没有本地安装Python.IPython.notebook等请移步 上篇Py ...

  8. 学习《Python数据科学手册》高清中文PDF+高清英文PDF+代码

    如果有一定的数据分析与机器学习理论与实践基础,<Python数据科学手册>这本书是绝佳选择. 是对以数据深度需求为中心的科学.研究以及针对计算和统计方法的参考书.很友好实用,结构很清晰.但 ...

  9. 100天搞定机器学习|day45-53 推荐一本豆瓣评分9.3的书:《Python数据科学手册》

    <Python数据科学手册>共五章,每章介绍一到两个Python数据科学中的重点工具包.首先从IPython和Jupyter开始,它们提供了数据科学家需要的计算环境:第2章讲解能提供nda ...

随机推荐

  1. 偏差(Bias)和方差(Variance)——机器学习中的模型选择zz

    模型性能的度量 在监督学习中,已知样本 ,要求拟合出一个模型(函数),其预测值与样本实际值的误差最小. 考虑到样本数据其实是采样,并不是真实值本身,假设真实模型(函数)是,则采样值,其中代表噪音,其均 ...

  2. Shiro学习

    Shiro学习资源 Shiro官网,http://shiro.apache.org/index.html 学习网站链接,http://blog.java1234.com/blog/articles/4 ...

  3. redis_哈希对象

    redis哈希对象的底层编码有两种:ziplist.hashtable ziplist编码 当一个哈希键只包含少量kv对.且key和value都是小整数值.短字符串时,redis会使用压缩列表来做 z ...

  4. 在windows上安装VTK

    看了很多教程,花了1天半的时间装上了,记录下. 前置条件:我安装了VS2015,用来编译工程. 参考资料 官方:http://www.vtk.org/Wiki/VTK/Building 安装:http ...

  5. 【repost】javascript callback

    在javascript中回调函数非常重要,它们几乎无处不在.像其他更加传统的编程语言都有回调函数概念,但是非常奇怪的是,完完整整谈论回调函数的在线教程比较少,倒是有一堆关于call()和apply() ...

  6. ServiceStack.Redis记录

    一.事务 (一)AcquireLock方法 1.说明:申请对一个Key加锁(期间其他对象不能访问). 2.带using的使用,或带过期时间参数,否则锁不会自动释放. using (RedisCache ...

  7. Bootstrap3.3.7

    页面的布局 <-!不让文字超出左右屏幕--> <style> .demo { word-wrap: break-word; } </style> 他们为那个模板中的 ...

  8. Maven3-依赖

    依赖配置 我们先来看一份简单的依赖声明: <project> ... <dependencies> <dependency> <groupId>...& ...

  9. 架构(四)Git简介,安装以及相关命令SourceTree

    一 Git介绍 1.1 Git是什么? Git是一个分布式版本控制软件: 版本控制:假如开发人员开发了一个a功能,结果项目经理觉得不够需要修改,开发人员又改成了b功能,后来又改成了c功能,但是最终项目 ...

  10. C++用法及学习心得

    通过对C++语言的学习,我感觉C++语言是有一定难度却又是非常有趣的科目.也是很有帮助的,对我们未来工作学习而言.我们可以通过C++语言进行更深层次的理解和思考.通过学习我懂得了C++语言是面向对象的 ...