2017年排名前15的数据科学python库
2017年排名前15的数据科学python库
2017-05-22 Python程序员 Python程序员
Python程序员 微信号 pythonbuluo 功能介绍 最专业的Python社区,有每日推送,免费电子书,真人辅导,资源下载,各类工具。我已委托“维权骑士”(rightknights.com)为我的文章进行维权行动
Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发。 最近几年,python在数据科学领域展现出极大的生命力。在这里,我们根据实践经验,列出一些对于数据科学家和工程师最常用的python库。
核心库1、NumPy
当我们用python来处理科学计算任务时,不可避免的要用到来自SciPy Stack的帮助。SciPy Stack是一个专为python中科学计算而设计的软件包,注意不要将它与SciPy库搞混了,后者只是这个软件包中的一部分。接下来我们一块来看看这个软件包。通常这个软件包是非常大的,里面包含十几个库。但是,在这里我们将集中介绍最核心的库,尤其是最基础的。
NumPy(表示Numerical Python)是构建科学计算包最基础的库。它为python中n维数组和矩阵操作提供了大量有用的功能。这个库还支持NumPy数组类型的向量化数学操作,能够改善计算性能,加快计算速度。
2、SciPySciPy是一个工程和科学计算的软件库。在这里,你需要再次理解SciPy Stack和SciPy库的不同。SciPy包含许多和线性代数,数学优化,积分和统计有关的模块。SciPy库的主要功能是构建在NumPy上的,因为它使用了大量NumPy库的数组。SciPy通过其特有的子模块提供许多有关数值积分,优化和其它方面的例程,而且其子模块都有详细的功能说明。
3、Pandas
Pandas是一个python库,通过数据标记和数据之间的关系来进行工作,其特点是简单直观。它非常适合用于数据分析,可以快速简单的对数据进行操作,整合以及可视化。来看下在这个库里主要的两种数据结构:“Series"-一维数据结构“Data Frames”-二维数据结构例如,当你想将这两种数据结构混合形成一个新的DataFrame时,原来的Series会追加在原来的DataFrame后面:这里列出用Pandas可以很容易做的一些操作:从DataFrame中可以容易的删除和添加列将数据结构转换成DataFrame对象将不存在的数据用NaN替代强大的数据分组功能
可视化4、Matplotlib
Matplotlib是SciPy Stack核心软件包中的另一个python库,可以轻松的生成简单强大的数据可视化图。在NumPy,SciPy和Pandas的基础上,Matplotlib是构成python的一个强大的工具包,可以和科学计算工具Matlab,Mathematics等形成强大的竞争力。唯一不足的是这个库的层次比较低,要想实现高水平的数据可视化必须要付出更多的努力写更多的代码。不过,总的来说,它还是值得一试的。
下面列出一些其常用的可视化图:直线图散点图条形图和直方图饼状图茎叶图矢量图量场图频谱图当然,还可以使用Matplotlib来创建标签,网格,图例等其它与图形相关的操作,基本上,所有东西都是可以自定义的。这个库支持不同的平台,在相应的平台下会充分利用其对应的GUI套件让结果可视化。此外,不同的IDE(像IPython)都支持Matplotlib的操作。当然还有一些其它的库使得数据可视化操作更加容易。
5、Seaborn
Seaborn主要用来统计模块的可视化操作,例如可以用其来显示热量图以反映数据的总体分布。此外,这个模块是构建在Matplotlib上的,并且高度依赖它。
6、Bokeh另一个比较好的可视化包是Bokeh,其主要致力于交互式可视。与前面介绍的那些库不一样的是,Bokeh并不依赖于Matplotlib,其可以通过现代浏览器以脚本(d3.js)的形式来展现最终的图形。
7、Plotiy最后,关于可视化python包的是Plotly。它是基于WEB工具箱来构建可视化的,其开放API接口给一些编程语言,当然包括python。在plotly的网站上有一些强大的开箱即用的图形,在使用plotly的时候最好设置好你的API密匙,这些图形将会在服务器一端处理并且可以发布到互联网上,当然也可以不必如此。机器学习
8、SciKit-Learn
Scikits是SciPy Stack另外的包,专门为图像处理和机器学习等特定功能而设计的。对于机器学习,其最杰出的包就是scikit-learn,这个包构建在SciPy之上,大量使用了SciPy的数学操作。
Scikit-learn向一般的机器学习算法开放了一个简洁一致的接口,使得机器学习可以简单的推进到生产系统中。这个库包含了许多高质量的代码和好的说明文档,非常容易使用,事实上,可以说是用python学习机器学习的行业标准了。深度学习-Keras/TensorFlow/Theano在深度学习方面,python中最突出和最方便的库就是Keras了,它可以说在TensorFlow和Theano功能之上。接下来,让我们看一下它们的一些细节。9、Theano
首先是Theano,它和NumPy类似都定义了多维数组,同时还有一些其它的数学操作与表达式。这个库是编译过的,可以高效的运行在各种架构上。它最初是由蒙特利尔大学机器学习小组开发的,主要用于机器学习。
有一点需要指出的是,Theano和NumPy在低层次的操作上有着紧密的结合。而且它还充分优化了GPU和CPU的使用,在数据密集型计算方面速度更快。在效率和稳定性方面的优化使得其可以计算更加精确的结果甚至是非常小的值。例如在计算 log(1+x)时,可以给出x的最小值以及最终的结果。
10、TensorFlow
TensorFlow来自谷歌的开发小组,是一个基于数据流图计算的开源库,它强化了机器学习,旨在满足Google环境对训练神经网络的高需求,可以看做是基于神经网络 机器学习系统DistCelief的继任者。此外,TensorFlow不仅用在Google科学计算,也可以满足实际应用的要求。TensorFlow的关键特点是其多层节点系统,可以在大型数据集上快速训练人工神经网络。这为Google的语音识别和图像对象识别提供了支持。
11、Keras
最后,让我们来看下Keras。Keras是用纯python写的高层神经网络开源库,具有简单易懂的高级扩展性。它用Theano和TensorFlow作为其后端,但是微软现在将CNTK(微软的认知工具包)集成为新的后端。Keras在设计中的简约方法旨在通过建立紧凑的系统来进行快速和容易的实验。
Keras是非常容易上手的,而且一直在其原型上不断地发展改进,具有高度的模块化和扩展性。抛开它的轻便,简洁以及高度模块化,Keras还是构建复杂模型的有力工具。
12、NLTK 自然语言处理
NLTK是Natural Language Toolkit的缩写,顾名思义,它是用来处理符号和统计自然语言处理的任务。NLTK旨在促进NLP及其相关领域(语言学,认知科学人工智能等)的教学与研究,目前正受到广泛的关注。
NLTK的功能允许很多操作,例如支持文本标记,分类,实体标识,建立语言树来显示句子间内的依赖关系等各种常用功能。所有的构件块都可以为不同的任务构建复杂的研究系统,例如情绪分析,自动总结等。
13、Gensim
Gensim是一个在Python中实现的成熟的开源 向量空间建模和主题建模工具包。它不仅可以用来进行内存处理,更适用于处理大型文本集。而且其通过使用NumPy和SciPy的数据结构极大的提高了执行性能,是非常高效和容易使用的。
Gensim旨在与原始非结构化数字文本一起使用。 其实现了诸如分层Dirichlet进程(HDP),潜在语义分析(LSA)和潜在Dirichlet分配(LDA)之类的算法,以及tf-idf,随机投影,word2vec和document2vec用于于检查文本中的重复文本的一组文件(通常称为语料库)。这里所有的算法都是无监督的 ,不需要添加任何参数,唯一的输入就是语料库。
数据挖掘与统计
14、Scrapy
Scrapy是用于从网络上检索结构化数据(如联系人信息或URL)的爬行程序库(也称为蜘蛛机器人)。它是开源的,也是用python编写的,并严格按照其名称所示的方式进行设计。现在它已经在完整的框架中发展,能够从API中采集数据并作为通用的爬虫。
这个库以其著名的设计原则“不要重复代码”来提示用户重构那些将要重复使用的通用代码,因此,这通常用来构建和扩展大型爬虫。Scrapy的架构紧紧围绕着Spider类来构建,其包含了爬行器跟踪的一套指令。
15、Statsmodels
正如你从名字中看出的那样,Statsmodels是一个python库,旨在让用户通过使用各种统计模型来进行数据挖掘与分析。实际中许多有用的特征都是描述性的,其结果可以通过使用线性回归模型,广义线性模型,离散选择模型,鲁棒线性模型,时间序列分析模型来进行统计估量。这个库还提供了广泛的绘图功能,专门用于统计分析和大数据统计数据。
总结
以上这些库被许多数据科学家和工程师认为是数据学习不可缺少的,如果不能做到熟练使用这些库,那么最好还是要熟悉它们。
下面是这些库在GitHub上活跃程度的统计表:
当然,这里不能列出全部的列表,还有许多其它不错的库,工具包,框架都是值得学习的。有一点比较好的是,不同的SciKit软件包专注于不同的领域,例如专门用于图像处理的SciKit-Image库。
所以,如果你要是有比较好用的python库,请在评论栏里让我们的读者都知道。感谢关注!
英文原文:https://activewizards.com/blog/top-15-libraries-for-data-science-in-python/
译者:咋家
2017年排名前15的数据科学python库的更多相关文章
- 2018年排名前20的数据科学Python库
Python 在解决数据科学任务和挑战方面继续处于领先地位.业已证明最有帮助的Python库,我们选择 20 多个库,因为其中一些库是相互替代的,可以解决相同的问题.因此,我们将它们放在同一个分组. ...
- MDX的实例讲解(排名前15的小例子)
MDX语句的特点: 大小写不分.members等于Members;downloads等于Downloads 维度的统计量指定要选择准确.downloads等于[Downloads] []可以少,不能多 ...
- Python数据科学“冷门”库
Python是一种神奇的语言.事实上,它是近几年世界上发展最快的编程语言之一,它一次又一次证明了它在开发工作和数据科学立场各行业的实用性.整个Python系统和库是对于世界各地的用户(无论是初学者或者 ...
- 9 个鲜为人知的 Python 数据科学库
除了 pandas.scikit-learn 和 matplotlib,还要学习一些用 Python 进行数据科学的新技巧. Python 是一种令人惊叹的语言.事实上,它是世界上增长最快的编程语言之 ...
- 20个最有用的Python数据科学库
核心库与统计 1. NumPy(提交:17911,贡献者:641) 一般我们会将科学领域的库作为清单打头,NumPy 是该领域的主要软件库之一.它旨在处理大型的多维数组和矩阵,并提供了很多高级的数学函 ...
- (数据科学学习手札50)基于Python的网络数据采集-selenium篇(上)
一.简介 接着几个月之前的(数据科学学习手札31)基于Python的网络数据采集(初级篇),在那篇文章中,我们介绍了关于网络爬虫的基础知识(基本的请求库,基本的解析库,CSS,正则表达式等),在那篇文 ...
- 干货!小白入门Python数据科学全教程
前言 本文讲解了从零开始学习Python数据科学的全过程,涵盖各种工具和方法 你将会学习到如何使用python做基本的数据分析 你还可以了解机器学习算法的原理和使用 说明 先说一段题外话.我是一名数据 ...
- 探讨2018年最受欢迎的15顶级Python库!
近日,数据科学网站 KDnuggets 评选出了顶级 Python 库 Top15,领域横跨数据科学.数据可视化.深度学习和机器学习.如果本文有哪些遗漏,你可以在评论区补充. 图 1:根据 GitHu ...
- 15 款JavaScript 热门图形图表库
图表是数据图形化的表示,也就是“通过形象的图表来展示数据,比如条形图,折线图,饼图”.几乎每个开发或者项目管理团队都需要图表或者图形来简化 理解,可视化复杂的数据和 web 应用工作流.可视化图表可以 ...
随机推荐
- 2017.11.13 python+ Jlink+EFM32 批量烧录
1 Add whl files to Python a. install the environment variable of path b . useing the CMD command : ...
- CodeIgniter (CI)框架中的数据库查询汇总
引言: 前两天业务涉及到一个拉取答题排行榜的需求,数据库里数据是这样的: 同一个人可能提交过多次成绩,所以同一个人可能会有多次记录: 同一个人提交的多次成绩中可能有至少两次成绩是一样的. 于是,查询的 ...
- zoj-3963 Heap Partition(贪心+二分+树状数组)
题目链接: Heap Partition Time Limit: 2 Seconds Memory Limit: 65536 KB Special Judge A sequence ...
- js实现checkbox组 全选和取消全选
做后台管理程序时,用到一个checkbox组的全选和取消全选的功能, 主要是逻辑上的坑,理清后大概是: 1.全选点击后,小弟1~4都要选上,点击取消,小弟们也要取消 2.只要有一个小弟取消时,全选要取 ...
- 使用Metasploit收集邮箱信息
Metasploit提供了很多辅助的模块,非常实用.今天介绍一个叫search_email_collector的模块,它的功能是查找搜索引擎(google.bing.yahoo),收集和某个域名有关的 ...
- Kali Linux使用Aircrack破解wifi密码(wpa/wpa2)
Kali Linux能做很多事,但是它主要以渗透测试及'破解wifi密码'闻名. 如果你使用Macbook 请看 使用macbook破解WPA/WPA2 wifi密码 要求: 安装有Kali Linu ...
- TCP传输控制协议
TCP 在TCP/IP协议模型中, 传输层协议有TCP和UDP, 这里主要介绍下可靠传输TCP协议, 目前是传输层协议首选. 特点 面向数据流(字节流形式) 虚电路连接 有缓冲传输(提供push机制 ...
- 【转】C# Socket编程(4)初识Socket和数据流
[转自:https://www.cnblogs.com/IPrograming/archive/2012/10/15/CSharp_Socket_4.html] 经过前面基础知识作为背景,现在对Soc ...
- C# Sql参数化 in like
[in] string sql = "exec('select * from bid where id in ('+@IDS+')')"; System.Data.SqlClien ...
- Java中Set,List,Map的区别
java集合的主要分为三种类型: Set(集) List(列表) Map(映射) 1.1 Collection接口 Collection是最基本的集合接口,声明了适用于JAVA集合(只包括Set和 ...