作者:呆鸟 Python爱好者社区专栏作者,未经容许,禁止转载
简书专栏:
https://www.jianshu.com/u/be48b04ecc3e 坚持学习Python和English两门语言,致力于让读译文就像读中文的呆鸟

标签: Bokeh, Data Science, Keras, Matplotlib, NLTK, numpy, Pandas, Plotly, Python, PyTorch, scikit-learn, SciPy, Seaborn, TensorFlow, XGBoost
原文作者: ActiveWizards
原文地址:Top 20 Python Libraries for Data Science in 2018

Python今年依旧保持着数据科学领域的领先地位。去年,我们在博客上列出了15个顶级Python数据科学库的榜单,当时大家都觉得非常好。这次,介绍一下这些顶级数据科学Python库今年有哪些更新,同时,我们还为这个榜单添加了一些新库。

实际上,这次的榜单不止20个库,主要是因为现在某些领域里有多个库都能解决相同的问题,而且暂时也不好说哪个库能成为领头羊,因此,我们将这些库分为一组,供大家选择。

Core Libraries & Statistics
核心库与统计库
1. NumPy (提交修改: 17911, 贡献者: 641)
按惯例,本榜单首先列出科学应用库,Numpy是这一类的首选,它是处理大型多维数组、矩阵及高级数学函数的工具集合,提供了多种数据操作方法。
今年,Numpy进行了很多改进。除了修复Bug和加强兼容性外,关键的改进是增加了可选样式,即Numpy对象的打印格式。此外,还增加了新的功能,只要是Python支持的编码,Numpy就可以处理使用这些编码的文件。

2. SciPy (提交修改: 19150, 贡献者: 608)
科学计算的的另一个核心库是SciPy。SciPy基于Numpy,扩展了Numpy的功能,它的核心数据结构是用Numpy实现的多维数组。这个库包含了一组处理线性代数、概率论、积分学等任务的工具。
SciPy的主要改进包括对不同操作系统的集成,增加了新的函数与方法,值得一提的是,SciPy更新了优化器。此外,还打包了不少新的BLAS[1]和LAPACK[2]函数。

3. Pandas (提交修改: 17144, 贡献者: 1165)
Pandas提供了高层数据结构和大量的分析工具。这个库最牛的地方是可以用一两条命令实现很多复杂的数据分析操作。Pandas内建了很多方法,比如分组、筛选、合并数据及时间序列等功能,并且,这些操作的运算速度都非常快。
今年,Pandas进行了数百项优化,包括增加了新特性、修复了Bug、改进了API。这些优化主要集中在提升Pandas分组和排序数据的能力,提供了更适用的apply方法的输出结果,还为操作自定义类型提供了支持。

4. StatsModels (提交修改: 10067, 贡献者: 153)
Statsmodels是进行统计数据分析的Python模块,比如,评估统计模型、执行统计测试等。有了Statsmodels,就可以实现很多机器学习方法,探索不同图形的绘图可能性。
Statsmodels还在不断开发升级,将来会提供越来越多的新特性。今年,Statsmodels引入了时间序列和新的技术模型,如,广义泊松、零膨胀模型、负二项式分布等,它还提供了一些新的多元方法,如,因子分析、多元方差分析(MANOVA)和方差分析(ANOVA)的重复测量等。

可视化
5. Matplotlib (提交修改: 25747, 贡献者: 725)
Matplotlib是创建二维图形的底层库。使用Matplotlib可以创建直方图、散点图、非笛卡尔坐标图等多种图形,并且,大部分流行绘图库都与Matplotlib兼容,可以进行交互操作。
今年,Matplotlib优化了颜色、字体、尺寸、图例等样式。比如,它对外观的优化包括了自动对齐图例,还改进了色彩,新采用的色相环即便是色盲也可以看。

6. Seaborn (提交修改: 2044, 贡献者: 83)
Seaborn是基于Matplotlib开发的高层API,与Matplotlib相比,它提供了更多实用的默认图形,包括诸如时间序列、Jointplot和小提琴图这样的可视化图。
2018年上半年,Seaborn的升级主要是修复Bug。同时,还改进了FaceGrid和PairGrid与Matplotlib增强型交互后端的兼容性,并为可视化图增加了参数和选项。

7. Plotly (提交修改: 2906, 贡献者: 48)
使用Plotly可以轻易地生成复杂的图形,这个库可以用来开发交互式的网页应用,还可以生成非常华丽的等高线图、三角图及3D图。
今年,Plotly的优化主要在于提供了很多新的图形和特性,引入了对动画与串扰集成等多重链接视图的支持。

8. Bokeh (提交修改: 16983, 贡献者: 294)
Bokeh使用JavaScript Widget,用于创建可在浏览器中查看的交互式、矢量化的可视化图。通过链接图形、添加Widget和回调函数等实用特性,Bokeh提供了很多图形、样式以及交互功能。
Bokeh今年优化的交互功能还是可圈可点的,比如说,旋转式类别图例标签,缩放工具、增强型自定义工具提示字段等。

9. Pydot (提交修改: 169, 贡献者: 12)
Pydot是生成复杂定向图与非定向图的库,它是Python开发的Graphviz[3]接口。有了Pydot,就可以展示结构化的图形,构建神经网络图与基于算法的决策树等图形。

Machine Learning
机器学习
10. scikit-learn (提交修改: 22753, 贡献者: 1084)
scikit-learn是最强大的数据处理库之一,它是基于Numpy和SciPy的Python模块。scikit-learn提供了很多标准机器学习与数据挖掘算法,比如,分类、聚类、回归、降维与模型选择等。
2018年上半年,scikit-learn做了很多改进。优化了交叉验证,使其可以使用一个以上的指标;完善了最近邻和逻辑回归等几个训练方法;还有一点是终于推出了通用术语与API元素术语表,有了这个术语表就可以很方便地了解scikit-learn的专业术语和使用约定。

11. XGBoost / LightGBM / CatBoost (提交修改: 3277 / 1083 / 1509, 贡献者: 280 / 79 / 61)
梯度增强是机器学习里最流行的算法,这个算法是基于决策树等持续精化的基本模型集合构建的。因此,现在出现了一些为了快速、便捷实现这种方法而设计的专用库。我们认为 XGBoost、LightGBM与CatBoost值得特别关注。它们都是解决梯度增强问题的竞争者,使用方式也几乎相同。XGBoost这几个库提供了高度优化、可扩展、可快速实现的梯度增强算法,这些优势让它们在现在的数据科学界里非常流行;甚至,由于其算法对赢得Kaggle比赛有很大帮助,现在很多参赛者也喜欢用这些库来解决Kaggle比赛问题。

12. Eli5 (提交修改: 922, 贡献者: 6)
机器学习模型预测的结果往往并不一目了然,无法让人轻易就能理解,Eli5就是为了解决这一痛点而开发的。Eli5用于将机器学习模型进行可视化,并进行Debug,可以一步一步追踪算法的执行步骤。Eli5支持scikit-learn、XGBoost、LightGBM、lightning和sklearn-crfsuite等库,能够为这些库执行不同的监控任务。

Deep Learning
深度学习
13. TensorFlow (提交修改: 33339, 贡献者: 1469)
TensorFlow是谷歌大脑开发的、超级火爆的深度学习与机器学习框架,它使用人工神经网络处理多重数据集。TensorFlow广泛应用于对象识别、语音识别等业务,现在还出现了不少基于TensorFlow创建的高层辅助器,比如tflearn、tf-slim和skflow等。
TensorFlow还在快速迭代,今年发布了不少更新版本,提供了很多新特性。比如,最新的版本修复了潜在的安全隐患,改进了TensorFlow与GPU的集成,可以让TensorFlow在一台机器上使用多个GPU运行评估期模型。

14. PyTorch (提交修改: 11306, 贡献者: 635)
PyTorch是一个大型框架,允许用户使用GPU加速张量计算、创建动态计算图、自动计算梯度值。PyTorch还提供了丰富的API接口,用于解决神经网络的相关应用。
PyTorch是基于Torch这个开源深度学习开源库创建的,2017年才引入了Python API接口。从那时起,PyTorch就变得非常流行,吸引了越来越多的数据科学家用户。

15. Keras (提交修改: 4539, 贡献者: 671)
Keras是运行在TensorFlow和Theano之上的高层神经网络库,最新版本还可以将CNTK和MxNet作为后端。Keras简化了任务操作,大大地减少了编写代码的工作量。然而,对于一些复杂的任务,Keras并不是十分适用。
今年,Keras优化了性能、可用性、文档和API,增加了Conv3D转置层、MobileNet应用与自归一网络等新特性。

分布式深度学习
16. Dist-keras / elephas / spark-deep-learning (提交修改: 1125 / 170 / 67, 贡献者: 5 / 13 / 11)
如今,越来越多的用例处理工作需要消耗极为庞大的资源与时间,因此,大规模数据的深度学习问题已经变得非常严峻了。然而,随着Apache Spark等分布式计算系统拓展到深度学习领域,处理这种大规模数据就变得简单了。因此,dist-keras、elephas和spark-deep-learning这样的库很快就应运而生,开发速度也非常快。只不过这些库现在都旨在解决同样的问题,目前还看不出来谁能够脱颖而出。这些库可以通过Keras直接调用Apache Spark训练神经网络,Spark-deep-learning还提供了构建Python神经网络管道的工具。

自然语言处理
17. NLTK (提交修改: 13041, 贡献者: 236)
NLTK是自然语言处理的平台。可以使用NLTK处理、分析文本,进行分词、标记、信息提取等工作,还可以使用NLTK搭建原型和调研系统。
NLTK今年的改进不多,主要是优化了API和兼容性,以及提供了一个新的CoreNLP的接口。

18. SpaCy (提交修改: 8623, 贡献者: 215)
SpaCy这个自然语言处理库提供了很多好用的例程、API文档和应用Demo。SpaCy是使用Cython开发的,支持超过30种语言,可以轻松地与深度学习集成,还能保证稳健、精准的结果。
SpaCy还有一个非常实用的特性,就是它的设计架构很好,不需要将文档分段就可以处理整个文档。

19. Gensim (提交修改: 3603, 贡献者: 273)
Gensim是基于Numpy和Scipy的Python库,可以进行语义分析、主题建模和向量空间建模。它提供了word2vec等NLP算法。虽然Gensim有自己的models.wrappers.fasttext,但是fasttext这个库也可以用于高效的词表征学习。
数据采集

20. Scrapy (提交修改: 6625, 贡献者: 281)
Scrapy是用来构建爬虫机器人扫描网页,采集结构化数据的Python库,Scrapy还可以通过API提取数据。Scrapy支持扩展和移植,用起来非常顺手。
今年Scrapy有很多升级,优化了Proxy服务器,改进了错误提示与问题识别系统,推出了使用Scrapy解析元数据设置的新功能。

结论
以上就是我们的2018年上半年的Python数据科学库榜单。与去年相比,经典的数据科学库仍在不断地完善、优化,与此同时,这个领域里也出现了不少新兴的数据科学库。
最后,给大家呈上Github上这些库的活跃表。

ActiveWizards是由数据科学家和数据工程师组成的团队,关注于大数据、数据科学、机器学习、数据可视化等数据项目。我们的核心专业领域包括数据科学(数据研究、机器学习算法与数据开发),数据可视化(D3.js、Tableau等)、大数据开发(Hadoop、Spark、Kafka、Cassandra、HBASE、MongoDB等)及数据密集型Web应用开发(RESTful API、Flask、Django和Meteor等)。


  1. BLAS的全称是Basic Linear Algebra Subprograms,即基础线性代数子程序,是一系列API规范,如向量、矩阵之间的乘法等。 ↩
  2. LAPACK的全称是linear algebra package,即线性代数库,其底层是BLAS,在此基础上定义了很多矩阵和向量高级运算的函数,如矩阵分解、求逆和求奇异值等。LAPACK是科学计算(矩阵运算)的接口规范,运行效率比BLAS更高。 ↩
  3. Graphviz是一个知名的绘制网络图、软件工程、数据库、网页设计及机器学习架构图的可视化工具。 ↩

2018年,20大Python数据科学库都做了哪些更新相关推荐

  1. Python 数据科学库入门

    Python 数据科学库入门 1.Numpy 1.1Numpy 简介 Numpy(Numerical Python) Numpy:提供了一个在 Python 中做科学计算的基础库,重在数值计算,主要用 ...

  2. Python数据科学库(三)

    Python数据科学库(三) 一.基本图形画法 (一)散点图 1.使用 2.参数 (二)折线图 1.使用 2.参数 3.案例 (三)条形图 1.使用 (1)水平条形图 (2)垂直条形图 2.参数 (四 ...

  3. Python数据科学库02(matplotlib)

    Python数据科学库02 学习02 matplotlib 对比常用统计图 折线图的更多应用场景: 1.呈现公司产品(不同区域)每天活跃用户数 2.呈现app每天下载数量 3.呈现产品新功能上线后,用 ...

  4. python数据科学库_Python数据科学库

    python数据科学库 什么是数据科学? (What is Data Science?) We live in an information age, where the challenge is t ...

  5. 27 个Python数据科学库实战案例 (附代码)

    为了大家能够对人工智能常用的 Python 库有一个初步的了解,以选择能够满足自己需求的库进行学习,对目前较为常见的人工智能库进行简要全面的介绍. 1.Numpy NumPy(Numerical Py ...

  6. 27个Python数据科学库,千万不要错过!!

    为了大家能够对人工智能常用的 Python 库有一个初步的了解,以选择能够满足自己需求的库进行学习,对目前较为常见的人工智能库进行简要全面的介绍. 1.Numpy NumPy(Numerical Py ...

  7. Python数据科学库-小测验

    考察内容包括numpy.pandas.matplotlib这3个库的内容 1.请写出numpy中创建数组的方式 答:np.arange.np.array.np.ones.np.zeros.np.ful ...

  8. [python]-数据科学库Numpy学习

    一.Numpy简介: Python中用列表(list)保存一组值,可以用来当作数组使用,不过由于列表的元素可以是任何对象,因此列表中所保存的是对象的指针.这样为了保存一个简单的[1,2,3],需要有3 ...

  9. 有前途的人工智能大数据分析相关职业:Python数据科学入门之路

    2019独角兽企业重金招聘Python工程师标准>>> 为什么学习Python数据科学? Python是数据科学职业所需的宝贵技能之一.Python是数据科学的首选编程语言. 201 ...

  10. python中令人惊艳的小众数据科学库

    Python是门很神奇的语言,历经时间和实践检验,受到开发者和数据科学家一致好评,目前已经是全世界发展最好的编程语言之一.简单易用,完整而庞大的第三方库生态圈,使得Python成为编程小白和高级工程师 ...

最新文章

  1. fastq质量值_微生物组16S rRNA数据分析小结:从fastq测序数据到OTU table
  2. Bluetooth profile: ATT/GATT(襄坤在线)
  3. mysql -s 参数_mysqldump 的常用参数。
  4. 小米5安卓使用微信X5 Blink内核调试
  5. 【JS 逆向百例】cnki 学术翻译 AES 加密分析
  6. 【转载】网站从百度云转入阿里云服务器
  7. Java学习笔记13--比较器(Comparable、Comparator)
  8. 视频云面向海量用户的分布式视频处理技术
  9. TeeChart插入
  10. 拼音表大全图_语文汉语拼音教学指导方法|拼音教学游戏大全
  11. Java集合、泛型和枚举
  12. Linux中如何设置静态IP和动态ip设定
  13. html显示当前脚本错误,访问网页总是提示当前网页脚本发生错误怎么办?
  14. Kubernetes:(十四)安全机制(一定要做好安全措施哦)
  15. [JSP]错误信息、错误处理
  16. 视频号小白如何做出一个赚钱的视频号?
  17. GitLab系列3 Unicorn
  18. 访问网站报错‘您目前无法访问XXXX 因为此网站使用了 HSTS
  19. 电子杂志+php,phpwind推电子杂志《站长天下》 网罗站长故事
  20. screen的使用方法

热门文章

  1. Spring Bean的加载过程以及一些生命周期
  2. Docker与容器化-01-Docker简介及Docker在CentOS7环境下安装
  3. 黄淮学院计算机专业录取分数线2019,黄淮学院2020年录取分数线(附2017-2020年分数线)...
  4. MQTT服务器Mosquitto安装及使用
  5. postman高级用法--断言(Response body:JSON value check)
  6. stm32for循环几个机械周期_带你了解包装机械设备的可调度性分析
  7. java中怎么创建单列模式,java中的3种方式创建的单例模式
  8. c# zxing条形码设置密度_C# 中 ZXing.Net 怎样突破 条形码 多识别 数量限制
  9. python列表推导式求完全数_Python列表推导式(List comprehension)
  10. Python让繁琐工作自动化——chapter15 保持时间、计划任务和启动程序