Python 在解决数据科学任务和挑战方面继续处于领先地位。业已证实最有帮助的Python库,咱们选择 20 多个库,由于其中一些库是相互替代的,能够解决相同的问题。所以,咱们将它们放在同一个分组。html
核心库和统计数据python
1. NumPy (提交:17911,撰稿人:641)git
官网:http://www.numpy.org/github
NumPy 是科学应用程序库的主要软件包之一,用于处理大型多维数组和矩阵,它大量的高级数学函数集合和实现方法使得这些对象执行操做成为可能。算法
2. SciPy (提交:19150,撰稿人:608)后端
官网:https://scipy.org/scipylib/数组
科学计算的另外一个核心库是 SciPy。它基于 NumPy,其功能也所以获得了扩展。SciPy 主数据结构又是一个多维数组,由 Numpy 实现。这个软件包包含了帮助解决线性代数、几率论、积分计算和许多其余任务的工具。此外,SciPy 还封装了许多新的 BLAS 和 LAPACK 函数。浏览器
3. Pandas (提交:17144,撰稿人:1165 网络
官网:https://pandas.pydata.org/数据结构
Pandas 是一个 Python 库,提供高级的数据结构和各类各样的分析工具。这个软件包的主要特色是可以将至关复杂的数据操做转换为一两个命令。Pandas包含许多用于分组、过滤和组合数据的内置方法,以及时间序列功能。
4. StatsModels (提交:10067,贡献者:153)
官网:http://www.statsmodels.org/devel/
Statsmodels 是一个 Python 模块,它为统计数据分析提供了许多机会,例如统计模型估计、执行统计测试等。在它的帮助下,你能够实现许多机器学习方法并探索不一样的绘图可能性。
Python 库不断发展,不断丰富新的机遇。所以,今年出现了时间序列的改进和新的计数模型,即 GeneralizedPoisson、零膨胀模型(zero inflated models)和 NegativeBinomialP,以及新的多元方法:因子分析、多元方差分析以及方差分析中的重复测量。
可视化
5. Matplotlib (提交:25747,撰稿人:725)
官网:https://matplotlib.org/index.html
Matplotlib 是一个用于建立二维图和图形的底层库。藉由它的帮助,你能够构建各类不一样的图标,从直方图和散点图到费笛卡尔坐标图。此外,有许多流行的绘图库被设计为与matplotlib结合使用。
6. Seaborn(提交人:2044,撰稿人:83)
官网:https://seaborn.pydata.org/
Seaborn 本质上是一个基于 matplotlib 库的高级 API。它包含更适合处理图表的默认设置。此外,还有丰富的可视化库,包括一些复杂类型,如时间序列、联合分布图(jointplots)和小提琴图(violin diagrams)。
7. Plotly (提交:2906,撰稿人:48)
官网:https://plot.ly/python/
Plotly 是一个流行的库,它可让你轻松构建复杂的图形。该软件包适用于交互式 Web 应用程,其卓越的可视化效果包括轮廓图形,三元图和3D图表。
8. Bokeh (提交:16983,撰稿人:294)
官网:https://bokeh.pydata.org/en/latest/
Bokeh 库使用 JavaScript 小部件在浏览器中建立交互式和可缩放的可视化。该库提供了多种图表集合,样式可能性(styling possibilities),连接图、添加小部件和定义回调等形式的交互能力,以及许多更有用的特性。
9. Pydot (提交:169,撰稿人:12)
官网:https://pypi.org/project/pydot/
Pydot 是一个用于生成复杂的定向图和无向图的库。它是用纯 Python 编写的Graphviz 接口。在它的帮助下,能够显示图形的结构,这在构建神经网络和基于决策树的算法时常常用到。
机器学习
10. Scikit-learn (提交:22753,撰稿人:1084)
官网:http://scikit-learn.org/stable/
这个基于 NumPy 和 SciPy 的 Python 模块是处理数据的最佳库之一。它为许多标准的机器学习和数据挖掘任务提供算法,如聚类、回归、分类、降维和模型选择。
Data Science School:http://datascience-school.com/
11. XGBoost / LightGBM / CatBoost (提交:3277/1083/1509,撰稿人:280/79/61)
官网:
http://xgboost.readthedocs.io/en/latest/http://lightgbm.readthedocs.io/en/latest/Python-Intro.htmlhttps://github.com/catboost/catboost
梯度加强算法是最流行的机器学习算法之一,它是创建一个不断改进的基本模型,即决策树。所以,为了快速、方便地实现这个方法而设计了专门库。就是说,咱们认为 XGBoost、LightGBM 和 CatBoost 值得特别关注。它们都是解决常见问题的竞争者,而且使用方式几乎相同。这些库提供了高度优化的、可扩展的、快速的梯度加强实现,这使得它们在数据科学家和 Kaggle 竞争对手中很是流行,由于在这些算法的帮助下赢得了许多比赛。
12. Eli5 (提交:922,撰稿人:6)
官网:https://eli5.readthedocs.io/en/latest/
一般状况下,机器学习模型预测的结果并不彻底清楚,这正是 Eli5 帮助应对的挑战。它是一个用于可视化和调试机器学习模型并逐步跟踪算法工做的软件包,为 scikit-learn、XGBoost、LightGBM、lightning 和 sklearn-crfsuite 库提供支持,并为每一个库执行不一样的任务。
深度学习
13. TensorFlow(提交:33339,撰稿人:1469)
官网:https://www.tensorflow.org/
TensorFlow 是一个流行的深度学习和机器学习框架,由 Google Brain 开发。它提供了使用具备多个数据集的人工神经网络的能力。在最流行的 TensorFlow应用中有目标识别、语音识别等。在常规的 TensorFlow 上也有不一样的 leyer-helper,如 tflearn、tf-slim、skflow 等。
14. PyTorch(提交:11306,撰稿人:635)
官网:https://pytorch.org/
PyTorch 是一个大型框架,它容许使用 GPU 加速执行张量计算,建立动态计算图并自动计算梯度。在此之上,PyTorch 为解决与神经网络相关的应用程序提供了丰富的 API。该库基于 Torch,是用 C 实现的开源深度学习库。在Lua中有一个包装器。Python API于2017年推出,从那时起,该框架愈来愈受欢迎并吸引了愈来愈多的数据科学家。
15. Keras (提交人:4539,撰稿人:671)
官网:https://keras.io/
Keras 是一个用于处理神经网络的高级库,运行在 TensorFlow、Theano 之上,
如今做为新版本的结果,它也可使用CNTK和MxNet做为后端。它简化了许多特定任务,并大大减小了单调代码的数量。可是,它可能不适合某些复杂的事情。
该库面临性能,可用性,文档和API改进。一些新功能是Conv3DTranspose 层,新的MobileNet 应用程序和自我规范化网络。
分布式深度学习
16. Dist-keras / elephas / spark-deep-learning(提交:1125/170/67,撰稿人:5/13/11)
官网:
http://joerihermans.com/work/distributed-keras/https://pypi.org/project/elephas/https://databricks.github.io/spark-deep-learning/site/index.html
随着愈来愈多的用例须要花费大量的精力和时间,深度学习问题变得愈来愈重要。然而,使用像 Apache Spark 这样的分布式计算系统,处理如此多的数据要容易得多,这再次扩展了深刻学习的可能性。所以,dist-keras、elephas 和 spark-deep-learning 都在迅速流行和发展,并且很难挑出一个库,由于它们都是为解决共同的任务而设计的。这些包容许你在 Apache Spark 的帮助下直接训练基于 Keras 库的神经网络。Spark-deep-learning 还提供了使用 Python 神经网络建立管道的工具。
天然语言处理
17. NLTK(提交:13041,撰稿人:236)
官网:https://www.nltk.org/
NLTK 是一组库,一个用于天然语言处理的完整平台。在 NLTK 的帮助下,你能够以各类方式处理和分析文本,对文本进行标记和标记,提取信息等。NLTK 也用于原型设计和创建研究系统。
18. SpaCy (提交:8623,撰稿人:215)
官网:https://spacy.io/
SpaCy 是一个具备优秀示例、API 文档和演示应用程序的天然语言处理库。这个库是用 Cython 语言编写的,Cython 是 Python 的 C 扩展。它支持近 30 种语言,提供了简单的深度学习集成,保证了健壮性和高准确率。SpaCy 的另外一个重要特性是专为整个文档处理设计的体系结构,无须将文档分解成短语。
19. Gensim (提交人:3603,撰稿人:273)
官网:https://radimrehurek.com/gensim/
Gensim 是一个用于健壮语义分析、主题建模和向量空间建模的 Python 库,构建在Numpy和Scipy之上。它提供了流行的NLP算法的实现,如 word2vec。尽管 gensim 有本身的 models.wrappers.fasttext实现,但 fasttext 库也能够用来高效学习词语表示。
数据采集
20. Scrapy (提交:6625,撰稿人:281)
官网:https://scrapy.org/
Scrapy 是一个用来建立网络爬虫,扫描网页和收集结构化数据的库。此外,Scrapy 能够从 API 中提取数据。因为该库的可扩展性和可移植性,使得它用起来很是方便。
结论
本文上述所列就是咱们在 2018 年为数据科学领域中总结的 Python 库集合。一些新的现代库愈来愈受欢迎,而那些已经成为经典的数据科学任务的库也在不断改进。
固然仍可能还有一些值得关注的其余伟大而有用的库。所以,请在下面的评论部分分享您的最爱,以及有关咱们提到的软件包的任何想法。
感谢您的关注!
下表显示了github活动的详细统计信息。
原文连接:
https://activewizards.com/blog/top-20-python-libraries-for-data-science-in-2018/