Python在解决数据科学任务和挑战方面继续处于领先地位。去年,我们发表了一篇博文,2017年数据科学的15个最佳Python库,概述了当时被证明最有用的Python库。今年,我们扩大了列表以包括新的Python库,并重新审视了去年已经讨论过的Python库,重点关注全年的更新。我们的选择实际上包括20多个库,因为其中一些库可以相互替代并解决相同的问题。因此,我们将它们放在同一组中。▌核心库及统计数据1.NumPy(Commits:17911,Contributors:641)官网:http://www.numpy.org/NumPy是科学应用库的主要软件包之一,用于处理大型多维数据数组和矩阵及其大量高级数学函数和实现使得对这些对象执行操作成为可能。2.SciPy(Commits:19150,Contributors:608)官网:https://scipy.org/scipylib/另一个科学计算的核心库是SciPy。它基于NumPy,并相应扩展了其功能。主要的SciPy数据结构也是一个多维数组,由Numpy实现。该软件包包含有助于解决线性代数、概率论、积分计算和许多其他任务的工具。此外,SciPy包装了许多新的BLAS和LAPACK函数。3.Pandas(Commits:17144,Contributors:1165)官网:https://pandas.pydata.org/Pandas是一个提供高级数据结构和各种分析工具的Python库。这个包的主要特点是能够将相当复杂的数据操作转换为一个或两个命令。Pandas包含许多用于分组、过滤和组合数据的内置方法,以及时间序列功能。4.StatsModels(Commits:10067,Contributors:153)官网:http://www.statsmodels.org/devel/Statsmodels是一个Python模块,提供了很多统计数据分析的机会,比如统计模型估计,进行统计检验等待。在它的帮助下,您可以实施许多机器学习方法并探索不同的绘图可能性。Python库在不断发展和丰富新的机会。因此,今年看到了时间序列的改进和新的计数模型,即广义泊松、零膨胀模型和NegativeBinomialP,以及新的多元方法:因子分析、MANOVA和ANOVA中的重复测量。▌可视化5.Matplotlib(Commits:25747,Contributors:725)官网:https://matplotlib.org/index.htmlMatplotlib是一个用于创建二维图形和图形的低级库。在它的帮助下,您可以构建各种不同的图表,从直方图和散点图到Fischer图。此外,还有许多流行的绘图库旨在与matplotlib结合使用。6.Seaborn(Commits:2044,Contributors:83)官网:https://seaborn.pydata.org/Seaborn本质上是一个基于matplotlib库的高级API。它包含更适合处理图表的默认设置。此外,还有丰富的可视化库,包括时间序列、联合图和小提琴图等复杂类型。7.Plotly(Commits:2906,Contributors:48)官网:https://plot.ly/python/Plotly是一个流行的库,可以让你轻松构建复杂的图形。此包适用于交互式Web应用程序,支持等高线图、三元图和3D图等可视化。8.Bokeh(Commits:16983,Contributors:294)官方网站:https://bokeh.pydata.org/en/latest/Bokeh库使用JavaScript小部件在浏览器中创建交互式和可缩放的可视化。该库提供了各种图表、样式可能性、链接图表形式的交互功能、添加小部件和定义回调以及许多其他有用功能的集合。9.Pydot(Commits:169,Contributors:12)官网:https://pypi.org/project/pydot/Pydot是一个生成复杂有向图和无向图的库。它是一个用纯Python编写的Graphviz界面。在它的帮助下,可以可视化图形的结构,这在构建基于决策树的神经网络和算法时经常使用。▌MachineLearning10.Scikit-learn(Commits:22753,Contributors:1084)官网:http://scikit-learn.org/stable/这个基于NumPy和SciPy的Python模块是最好的数据处理库之一。它为许多标准机器学习和数据挖掘任务提供算法,例如聚类、回归、分类、降维和模型选择。通过DataScienceSchoolDataScienceSchool提高您的技能:http://datascience-school.com/11。XGBoost/LightGBM/CatBoost(Commits:3277/1083/1509,Contributors: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(Commits:922,Contributors:6)官网:https://eli5.readthedocs.io/en/latest/很多时候,机器学习模型预测的结果并不完全清晰,这正是Eli5帮助应对挑战。它是一个用于可视化和调试机器学习模型和逐步跟踪算法工作的包,为scikit-learn、XGBoost、LightGBM、lightning和sklearn-crfsuite库提供支持,并为每个库执行不同的任务。▌DeepLearning13.TensorFlow(Commits:33339,Contributors:1469)官网:https://www.tensorflow.org/TensorFlow是由GoogleBrain开发的流行的深度学习和机器学习框架。它提供了使用具有多个数据集的人工神经网络的能力。最新的TensorFlow应用包括对象识别、语音识别等。常规TensorFlow上还有不同的leyer-helper,例如tflearn、tf-slim、skflow等。14.PyTorch(提交:11306,贡献者:635)官方网址:https://pytorch.org/PyTorch是一个大型框架,允许使用GPU加速进行张量计算,创建动态计算图并自动计算梯度。除此之外,PyTorch还提供了丰富的API来解决与神经网络相关的应用。该库基于Torch,一个用C实现的开源深度学习库。15.Keras(Commits:4539,Contributors:671)官网:https://keras.io/Keras是一个处理神经网络的高级库网络,在TensorFlow和Theano上运行。CNTK和MxNet可以用作后端。它简化了许多特定的任务,大大减少了单调的代码量。但是,它可能不适合某些复杂的任务。▌分布式深度学习16.Dist-keras/elephas/spark-deep-learning(Commits:1125/170/67,Contributors:5/13/11)官网:http://joerihermans.com/work/distributed-keras/https://pypi.org/project/elephas/https://databricks.github.io/spark-deep-learning/site/index.html随着越来越多的用例需要大量的精力和时间,深度学习问题变得越来越重要。然而,有了像ApacheSpark这样的分布式计算系统,处理这么多数据就容易多了,这又一次扩展了深度学习的可能性。因此,dist-keras、elephas和spark-deep-learning都在迅速流行和发展,很难挑出一个库,因为它们都是为解决常见任务而设计的。这些包允许您在ApacheSpark的帮助下直接训练基于Keras库的神经网络。Spark-deep-learning还提供了使用Python神经网络创建管道的工具。▌NaturalLanguageProcessing17.NLTK(Commits:13041,Contributors:236)官网:https://www.nltk.org/NLTK是一套库,一个完整的自然语言处理平台。在NLTK的帮助下,您可以以各种方式处理和分析文本、对文本进行分词和分词、提取信息等。NLTK还用于原型设计和构建研究系统。18.SpaCy(Commits:8623,Contributors:215)官网:https://spacy.io/SpaCy是一个自然语言处理库,有优秀的例子、API文档和演示应用程序。这个库是用Cython语言编写的,它是Python的C扩展。它支持近30种语言,提供简单的深度学习集成,并保证鲁棒性和高精度。SpaCy的另一个重要特性是为整个文档处理而设计的架构,无需将文档分解为短语。19.Gensim(Commits:3603,Contributors:273)官网:https://radimrehurek.com/gensim/Gensim是一个用于鲁棒语义分析、主题建模和向量空间建模的Python库,建立在之上Numpy和Scipy。它提供流行的NLP算法的实现,例如word2vec。虽然gensim有自己的models.wrappers.fasttext实现,但fasttext库也可以用来高效地学习单词表示。▌数据收集20.Scrapy(Commits:6625,Contributors:281)官网:https://scrapy.org/Scrapy是一个用于创建网络爬虫、扫描网页和收集结构化数据的库。此外,Scrapy可以从API中提取数据。由于库的可扩展性和可移植性,使用起来非常方便。▌结论本文以上列表是我们2018年在数据科学领域丰富的Python库合集。一些新的现代库相比前一年越来越受欢迎,而那些已经成为经典数据科学任务的库也在不断进步。下表是GitHub活动的详细统计:原文链接:https://activewizards.com/blog/top-20-python-libraries-for-data-science-in-2018/
