当前位置: 首页 > 科技观察

干货-20个最有用的Python数据科学库

时间:2023-03-17 15:35:26 科技观察

核心库和统计1.NumPy(commit:17911,contributor:641)通常,我们会从科学领域的库开始列表,而NumPy是该领域的主要软件之一的图书馆。它旨在处理大型多维数组和矩阵,并提供许多高级数学函数和方法,因此您可以使用它执行各种运算。在过去的一年中,开发团队对该库进行了大量改进。除了错误修复和解决兼容性问题外,主要更改还包括样式改进,即NumPy对象的打印格式。此外,一些函数现在可以处理任意编码的文件,只要Python支持这些编码。2.SciPy(commit:19150,contributor:608)另一个科学计算核心库SciPy建立在NumPy之上,扩展了NumPy的功能。SciPy的主要数据结构是多维数组,使用Numpy实现。该库提供了解决线性代数、概率论、积分计算等任务的工具。SciPy与不同操作系统的持续集成带来了重大改进,例如新功能和方法,最重要的是-最新的优化器。此外,开发团队还封装了许多新的BLAS和LAPACK函数。3.Pandas(commit:17144,contributor:1165)Pandas是一个提供高级数据结构和各种分析工具的Python库。这个库的一个重要特性是能够将相当复杂的数据操作转换为一个或两个命令。Pandas提供了许多用于分组、过滤和组合数据的内置方法,以及时间序列功能。所有这些方法都执行得很快。新发布的pandas库还提供了数百个新功能、增强功能、错误修复和API更改。这些改进与Pandas对数据进行分组和排序的能力有关,支持自定义类型操作。4.StatsModels(Commit:10067,Contributor:153)Statsmodels是一个Python模块,为统计数据分析提供了很多可能性,比如统计模型估计,运行统计测试等。你可以用它来实现很多机器学习方法和探索不同的绘图可能性。图书馆在不断发展,带来更多的可能性。今年带来了时间序列改进和新的计数模型GeneralizedPoisson、零膨胀模型和NegativeBinomialP,以及新的多元方法因子分析、MANOVA和ANOVA的重复测量。可视化5.Matplotlib(提交:25747,贡献者:725)Matplotlib是一个用于创建二维图表和图形的低级库。您可以使用它来构建各种图表,从直方图和散点图到非笛卡尔图。此外,许多流行的绘图库都为Matplotlib预留了位置,可以与Matplotlib结合使用。该库在绘图样式上做了很多更改,例如颜色、大小、字体、图例等。例如,轴图例的自动对齐和对色盲患者更友好的色轮。6.Seaborn(提交:2044,贡献者:83)Seaborn实际上是一个构建在matplotlib库之上的高级API。它为处理图形提供了更合适的默认选项。此外,它还提供了丰富的可视化图库,包括时间序列、联合图和小提琴图等复杂类型。Seaborn更新主要是错误修复。但是,FacetGrid(或PairGrid)与增强的交互式matplotlib后端之间的兼容性得到了改进,增加了可视化的参数和选项。7.Plotly(提交:2906,贡献者:48)Plotly是一个流行的库,可帮助您轻松构建复杂的图形。该库适用于交互式Web应用程序,提供了许多出色的可视化效果,包括等高线图、三元图和3D图表。该库不断得到增强和改进,带来新的图形和功能,支持“多链接视图”、动画和串扰集成。8.Bokeh(提交数:16983,贡献者:294)Bokeh库使用JavaScript小部件在浏览器中创建交互式和可扩展的可视化效果。该库以链接图的形式提供各种图形、样式、交互功能、添加小部件、定义回调以及许多其他有用的功能。Bokeh改进的交互性值得称赞,例如可旋转的分类刻度标签,以及小型缩放工具和自定义工具提示字段增强功能。9.Pydot(Commit:169,Contributor:12)Pydot是一个用于生成面向复杂和非复杂图形的库。它是用Python编写的,作为Graphviz的接口。我们可以用它来显示图的结构,这在构建神经网络和基于决策树的算法时经常使用。机器学习10.Scikit-learn(提交:22753,贡献者:1084)这个基于NumPy和SciPy的Python模块是处理数据的最佳库之一。它为许多标准机器学习和数据挖掘任务提供算法,例如聚类、回归、分类、降维和模型选择。该库有许多增强功能。交叉验证已更新为使用多个指标。一些训练方法(如邻近采样和逻辑回归等)得到了一些小的改进。其主要更新之一是完成了常用术语和API元素的词汇表。11.XGBoost/LightGBM/CatBoost(commit:3277/1083/1509,contributor:280/79/61)Gradientboosting是最流行的机器学习算法之一,其核心原理是建立一个不断完善的基础模型集合,决策树。因此,专门设计了一些库来方便快捷地实现这种方法。我们认为XGBoost、LightGBM和CatBoost值得关注。它们都是解决常见问题的最强大工具,而且它们的使用方式也大致相同。我们可以使用这些库快速实现高度优化和可扩展的梯度提升,因此它们在数据科学家和Kaggle竞争对手中非常受欢迎,他们借助这些算法赢得了许多比赛。12.Eli5(commits:922,contributors:6)通常,机器学习模型的预测结果并不完全清晰,此时可以使用Eli5来解决这个问题。它是一个用于可视化和调试机器学习模型、逐步跟踪算法执行的库。它支持scikit-learn、XGBoost、LightGBM、lightning和sklearn-crfsuite库,并且可以为每个库执行不同的任务。深度学习13.TensorFlow(提交:33339,贡献者:1469)TensorFlow是由GoogleBrain开发的一种流行的深度学习和机器学习框架。它支持在人工神经网络中使用多个数据集。最流行的TensorFlow应用场景包括物体识别、语音识别等,也有很多基于TensorFlow构建的库,比如tflearn、tf-slim、skflow等,这些库发布新版本的速度非常快,引入了很多新特性.最新的修复包括潜在的安全漏洞和改进的TensorFlow与GPU的集成,因此现在可以在一台计算机上的多个GPU上运行Estimator模型。14.PyTorch(Commit:11306,Contributor:635)PyTorch是一个大型框架,可用于基于GPU加速进行张量计算,创建动态计算图,自动计算梯度。此外,PyTorch还提供了丰富的API,用于解决与神经网络相关的应用。该库建立在Torch之上,用C语言实现,并包含一个用Lua编写的包装器。它的PythonAPI于2017年推出,此后该框架越来越受欢迎,并吸引了越来越多的数据科学家。15.Keras(Commit:4539,Contributor:671)Keras是一个运行在TensorFlow或Theano之上的用于处理神经网络的高级库,现在发布的新版本可以使用CNTK或MxNet作为后端。它简化了很多特定的任务,大大减少了样板代码的数量,但它可能不适合一些复杂的事情。该库在性能、可用??性、文档和API方面都有改进,并引入了新功能,例如Conv3DTranspose层、新的MobileNet应用程序和自规范化网络。分布式深度学习16.dist-keras/elephas/spark-deep-learning(Commit:1125/170/67,Contributor:5/13/11)深度学习问题变得越来越重要,因为越来越多的场景需要更多的时间和成本。而像ApacheSpark这样的分布式计算系统可以更轻松地处理大量数据,这反过来又为深度学习开辟了更多可能性。dist-keras、elephas和spark-deep-learning正变得越来越流行并且发展迅速。很难说它们中的哪一个更好,因为它们都是为解决一些相同的任务而设计的。这些库和Keras可以直接在ApacheSpark中使用来训练神经网络。spark-deep-learning还提供了用于为Python神经网络创建管道的工具。自然语言处理17.NLTK(Commit:13041,Contributor:236)NLTK是一个库的集合,一个完整的自然语言处理平台。在NLTK的帮助下,您可以以各种方式处理和分析文本,例如标记化、标记、提取信息等。NLTK还用于原型设计和构建研究系统。该库的增强功能还包括较小的API和兼容性更改以及CoreNLP的新接口。18.SpaCy(提交:8623,贡献者:215)SpaCy是一个自然语言处理库,具有出色的示例、API文档和演示应用程序。该库是用Cython(Python的C扩展)编写的。支持近30种语言,轻松与深度学习集成,保证鲁棒性和高精度。SpaCy的架构设计用于处理整个文档而不需要将它们拆分成短语,这也是SpaCy的一个重要特性。19.Gensim(提交:3603,贡献者:273)Gensim建立在Numpy和Scipy之上,是一个用于语义分析、主题建模和向量空间建模的Python库。它提供主流NLP算法的实现,例如word2vec。Gensim有自己的models.wrappers.fasttext实现,但仍然可以使用fasttext库来高效学习单词表示。数据抓取20.Scrapy(提交数:6625,贡献者:281)Scrapy是一个用于创建扫描网站页面和收集结构化数据的爬虫程序的库。此外,Scrapy可以从API中提取数据。由于其良好的可扩展性和可移植性,该库使用起来非常方便。过去一年图书馆的变化包括对代理服务器的多次升级以及改进的错误通知和问题识别系统。元数据设置中使用的Scrapy解析也有新功能。结论这些是我们2018年数据科学顶级Python库列表的集合。与去年相比,一些较新的库越来越受欢迎,而那些经典库也在不断改进。下表显示了这些库在Github上的活动统计信息。各个库的链接地址:NumPy:http://www.numpy.org/SciPy:https://scipy.org/scipylib/Pandas:https://pandas.pydata.org/StatsModels:http://www.statsmodels.org/devel/Matplotlib:https://matplotlib.org/index.htmlSeaborn:https://seaborn.pydata.org/Plotly:https://plot.ly/python/Bokeh:https://bokeh。pydata.org/en/latest/Pydot:https://pypi.org/project/pydot/Scikit-learn:http://scikit-learn.org/stable/XGBoost:http://xgboost.readthedocs.io/en/latest/LightGBM:http://lightgbm.readthedocs.io/en/latest/Python-Intro.htmlCatBoost:https://github.com/catboost/catboostEli5:https://eli5.readthedocs.io/en/最新/TensorFlow:https://www.tensorflow.org/PyTorch:https://pytorch.org/Keras:https://keras.io/dist-keras:http://joerihermans.com/work/distributed-keras/elephas:https://pypi.org/project/elephas/spark-deep-learning:https://databricks.github.io/spark-deep-learning/site/index.htmlNLTK:https://www.nltk.org/SpaCy:https://spacy.io/Gensim:https://radimrehurek.com/gensim/Scrapy:https://scrapy.org/