常用的Python数据可视化库如下所示与Matplotlib最大的区别

作者 | 李明江 张良军 周东平 张尚佳 来源 | 大数据DT

作为一种设计良好的编程语言,Python 已广泛应用于各个领域。依靠其强大的第三方类库,Python可以在各个领域发挥巨大的作用。

一、数值计算

数值计算是数据挖掘和机器学习的基础。Python 为数值计算提供了多种强大的扩展库。常用的数值计算库如下。

1. NumPy

它支持多维数组和矩阵运算,还提供了大量的数组运算数学函数库。常与SciPy和Matplotlib配合使用,支持比Python更广泛的数值类型,定义的最重要的对象是一个叫ndarray的n维数组类型,用来描述相同类型元素的集合,可以使用从0开始的索引集合中的访问元素。

2. 科学派

在NumPy库的基础上,增加了许多数学、科学和工程计算常用的库函数,如线性代数、常微分方程数值解、信号处理、图像处理、稀疏矩阵等,可以执行插值处理,信号滤波,并使用C语言加速计算。

3. 熊猫

用于解决数据分析任务的基于 NumPy 的工具。集成了大量的库和一些标准的数据模型,提供了高效操作大型数据集所需的工具和大量可以快速轻松地处理数据的函数和方法,为时间序列分析提供了良好的支持,并提供了多种数据结构,例如 Series、Time-Series、DataFrame 和 Panel。

二、数据可视化

数据可视化是展示和理解数据的有效手段。常用的 Python 数据可视化库如下所示。

4. Matplotlib

第一个 Python 可视化库。还有很多其他的库基于它或者直接调用库,可以很方便的获取数据的大致信息。功能很强大,但也很复杂。

5. 希伯恩

使用 Matplotlib,使用简洁的代码制作好看的图表。与 Matplotlib 最大的不同在于默认的绘图风格和配色的现代美学。

6. ggplot

一个基于 R 的库 ggplot2 也利用了 The Grammar of Graphics 中的概念,允许不同层的叠加来完成一张图片,这不适合制作非常个性化的图像。为了操作的简单性,牺牲了图像的复杂性。

7. 散景

与 ggplot 一样,散景基于图形语法中的概念。与 ggplot 的不同之处在于它完全基于 Python,而不是从 R 中引用。优点是它可以用来制作交互式的、可用于网络的图表。图表可以作为 JSON 对象、HTML 文档或交互式 Web 应用程序输出。

Bokeh 还支持流式传输和实时数据,为不同用户提供 3 级控制:

最高级别的控制用于快速绘图,主要用于制作常用图像;中等级别的控制,如 Matplotlib,允许开发人员控制图像的基本元素(如分布图中的点);最低级别的控制主要针对开发人员和软件工程师。没有默认值,图表的每个元素都需要定义。8. 剧情

可通过 Python notebooks 获得,它专门用于制作像 Bokeh 这样的交互式图表,但提供了其他库中很少发现的几种类型的图表,例如等高线图、树状图和 3D 图表。

9. pygal

像 Bokeh 和 Plotly 一样,提供可以直接嵌入到 Web 浏览器中的交互式图像。与其他两个的主要区别在于图表可以输出SVG格式,所有图表都封装成方法,而且默认样式也很漂亮,几行代码就可以轻松制作出漂亮的图表。

10. 地理图库

用于制作地图和地理相关数据的工具箱。它可以用来制作各种地图,例如等面积图、热图和点密度图。必须安装 Pyglet(一个面向对象的编程接口)才能使用它。

11. 缺失无

使用图像快速评估丢失的数据,根据数据完整性对数据进行排序或过滤,或者根据热图或树状图修改数据。

三、网页开发

Web 应用程序开发可以说是当今软件开发中最重要的部分。Python提供了各种Web开发框架,帮助用户快速实现功能开发。常用的Python网络开发类库如下所示。

12.姜戈

一个高级 Python Web 框架,支持快速开发并提供从模板引擎到 ORM 的所有内容。使用该库构建应用程序时,您必须遵循 Django 方式。

13. 套接字

一个套接字通信低级库,用于在服务器和客户端之间建立 TCP 或 UDP 连接,并通过该连接发送请求和响应。

14. 烧瓶

基于 Werkzeug 和 Jinja 2 的 Python 轻量级框架(微框架)。默认配备 Jinja 模板引擎,也包含其他模板引擎或 ORM 供选择。它适合编写 API 服务(RESTful 服务)。

15. 扭曲

一个用Python实现的事件驱动的网络引擎框架,建立在延迟对象之上,通过异步架构实现的高性能引擎,不适合编写常规的Web Apps,但更适合底层网络。

16. 龙卷风

FriendFeed 开发的一个 Python web 框架和异步网络库,采用非阻塞网络 I/O 模型,可以处理数千个网络连接。Tornado 是长轮询、WebSockets 和其他需要长实时连接的应用程序的理想 Web 框架,它介于 Django 和 Flask 之间,并且可以很好地处理 C10K 问题。

四、数据库管理

数据库是企业存储数据的主要工具。数据库管理包括数据定义、数据操作、数据库操作管理、数据组织、数据库数据库保护、数据库维护等。Python提供了所有主流的关系数据库管理接口。常用的Python MySQL连接库及其介绍如下。

17. MySQL-python

也称为 MySQLdb神经网络算法c语言版,是目前最流行的 Python 连接 MySQL 的驱动,很多框架也是基于这个库开发的。仅支持 Python 2.x,安装的前提条件很多。由于该库是基于C语言开发的,在Windows平台上安装非常不友好,经常会失败。现在基本不推荐了,替代的是衍生版。

18.mysql客户端

它与 MySQLdb 完全兼容,并支持 Python 3.x。它是 Django ORM 的一个依赖工具。它可以使用原生 SQL 来操作数据库。安装方法与MySQLdb相同。

19. PyMySQL

纯Python实现的驱动比MySQLdb慢。最大的特点就是安装方法简单,而且还兼容MySQL-python。

20. SQLAlchemy

一个同时支持原生 SQL 和 ORM 的工具。ORM是Python对象与数据库关系表的映射关系,可以有效提高代码编写速度,同时兼容SQLite、MySQL、PostgreSQL等多种数据库系统,但代价是有一定的性能损失。

五、自动化运维

运维的主要内容包括保障业务长期稳定运行、保障数据安全可靠、自动化部署任务等。Python可以满足大部分自动化运维的需求。在Linux运维中已经用Python实现的应用如下。

图片[1]-常用的Python数据可视化库如下所示与Matplotlib最大的区别-老王博客

21. 跳转服务器

一个用Python编写的开源跳板(堡垒机)系统,实现了跳板的基本功能,包括认证、授权和审计,并集成了Ansible、批处理命令等。

支持WebTerminal Bootstrap编写,界面美观,自动采集硬件信息,支持视频播放、命令搜索、实时监控、批量上传下载等功能,基于SSH协议进行管理,客户端无需安装代理。主要用于解决可视化安全管理。因为它是完全开源的,所以很容易再次开发。

22. Magedu 分布式监控系统

一个用Python开发的自动化监控系统,可以监控常见的系统服务、应用程序和网络设备。它可以在一台主机上监控多个不同的服务。不同服务的监控间隔可以不同。同一服务在不同主机上的监控间隔,告警阈值可以不同,并提供数据可视化界面。

23. Magedu 的 CMDB

一个用Python开发的硬件管理系统,包括硬件数据采集、API、页面管理三个功能。主要用于实现笔记本、路由器等常用设备的日常使用自动化。服务器的客户端收集硬件数据并将硬件信息发送给 API。API负责将获取的数据保存到数据库中,后台管理程序负责配置和展示服务器信息。

24.任务调度系统

Python开发的一个任务调度系统,主要用于将一个服务进程自动分配给其他机器的多个进程。一个服务进程可以作为调度器,依靠网络通信来完成这项工作。

25. Python运维流程系统

一个用于调度和监控用 Python 编写的工作流的平台,并在内部用于创建、监控和调整数据管道。允许工作流开发人员轻松创建、维护和定期安排工作流运行,包括跨多个部门的用例,例如数据存储、增长分析、电子邮件发送、A/B 测试等。

六、图形用户界面编程

GUI(Graphical User Interface,图形用户界面)是指以图形方式显示的计算机操作用户界面。Python为GUI编程提供了多个图形开发界面库。常用的 Python GUI 库如下所示。

26. Tkinter

Python 的标准 GUI 库,可以快速创建 GUI 应用程序。它可以在大多数 UNIX 平台上使用。它也可以在 Windows 和 Macintosh 系统上使用。Tkinter 8.0 的后续版本可以实现原生窗口样式。,并且在大多数平台上运行良好。

27. wxPython

一个开源软件跨平台GUI库wxWidgets Python包和Python模块,是一套Python语言优秀的GUI图形库,可以让程序员轻松创建完整的、功能齐全的GUI用户界面。

28. PyQt

用于创建 GUI 应用程序的工具库,成功融合了 Python 编程语言和 Qt,可在所有主要操作系统上运行,包括 UNIX、Windows 和 Mac。PyQt 是双重许可的,开发人员可以在 GPL 和商业许可之间进行选择,从 PyQt 版本 4 开始,GPL 许可适用于所有支持的平台。

29. PySide

Qt 的 Python 绑定版本,一个跨平台的应用程序框架,提供与 PyQt 类似的功能并且与 API 兼容,但在 LGPL 许可下与 PyQt 不同。

七、机器学习

作为一种理想的集成语言,Python将各种技术绑定在一起,除了为用户提供更便捷的功能外,它还是开发者与外部库的低级集成者之间理想的胶水平台 建立连接以在C/C++中实现更高效的算法.

对于研究人员而言,使用 Python 编程可以快速迁移代码并进行更改,而无需花费太多精力来修改代码和代码规范。开发者在 Python 中封装了许多优秀的依赖库,其中 NumPy 和 SciPy 库提供了当前解决机器学习问题所需的标准配置。

Python目前集成了大量的机器学习框架,其中常用的机器学习库如下图所示。

30. Scikit-Learn

Scikit-Learn 基于 NumPy 和 SciPy,是专门为机器学习构建的 Python 模块。它提供了大量的数据挖掘和分析工具,包括数据预处理、交叉验证、算法和可视化算法等一系列接口。

Sklearn的基本功能可以分为6个部分:

分类、回归、聚类、数据降维、模型选择、数据预处理,其中集成了大量的分类、回归和聚类算法,包括支持向量机、逻辑回归、朴素贝叶斯、随机森林、梯度提升、K-means、和 DBSCAN 等。

31. 橙色3

Orange3 是一个基于组件的数据挖掘和机器学习软件套件,支持 Python 进行脚本开发。它包含一系列数据可视化、检索、预处理和建模技术,具有良好的用户界面,也可作为 Python 模块使用。

用户可以通过数据可视化进行数据分析,包括统计分布图、直方图、散点图,以及更深层次的决策树、层次聚类、热图、MDS(多维分析)、线性预测等,并且可以使用Orange自带的用于 NLP、文本挖掘、构建网络分析、推断高频数据集和关联规则数据分析的各种附加功能组件。

32. XGBoost

XGBoost 是一个专注于梯度提升算法的机器学习函数库,因其出色的学习效果和高效的训练速度而受到广泛关注。XGBoost 支持并行处理,与同样实现梯度提升算法的 Scikit-Learn 库相比,其性能提升了 10 倍以上。XGBoost 可以处理各种任务,例如回归、分类和排名。

33. NuPIC

NuPIC 是一个专注于时间序列的机器学习平台。它的核心算法是HTM算法,比深度学习更接近人脑的运行结构。HTM算法的理论基础主要是人脑中处理高级认知功能的新皮质部分的工作原理。NuPIC 可用于预测和异常检测。它非常适用,只需要输入时间序列。

34.牛奶

Milk(机器学习工具包)是 Python 中的机器学习工具包。

Milk 专注于提高运行速度和减少内存占用,所以大部分性能敏感的代码都是用 C++ 编写的,为了方便,在此基础上提供了 Python 接口。它专注于提供有监督的分类方法,如 SVM、KNN、随机森林和决策树,但也支持无监督学习算法,如 K-means 和亲和力传播。

八、深度学习

作为机器学习的一个分支,深度学习大放异彩。由于 Python 的易用性和可扩展性,很多深度学习框架都提供了 Python 接口,其中比较流行的深度学习库如下图所示。

35. 咖啡

Caffe(Convolutional Architecture for Fast Feature Embedding)是一个以表达、速度和模块化为核心的深度学习框架。具有清晰度高、可读性高、速度快等特点,广泛应用于视频和图像处理。

Caffe中的网络结构和优化以配置文件的形式定义,使用方便,无需通过代码搭建网络;网络训练速度快,可以训练大数据集和state-of-the-art模型;模块化组件可以促进扩展到新模型和学习任务。

36. Theano

Theano 诞生于 2008 年,是一个高性能的符号计算和深度学习库。它被认为是深度学习库的鼻祖之一,也是深度学习研究和应用的重要标准之一。它的核心是一个数学表达式编译器,专门用于处理大规模神经网络训练的计算。

Theano很好地集成了NumPy,可以直接使用NumPy的ndarray,大大降低了API接口的学习成本;计算稳定性好,能准确计算输出值较小的函数,如log(1+x);动态生成 C 或 CUDA 代码以编译成高效的机器代码。

37. TensorFlow

TensorFlow 是一个比较高级的机器学习库。其核心代码用 C++ 编写,支持自动推导,让用户无需自己编写 C++ 或 CUDA 代码,或通过反向传播求解梯度,即可轻松设计神经网络结构。. 由于底层采用C++语言编写,保证了运行效率,简化了在线部署的复杂度。

除了核心代码的C++接口,TensorFlow还有官方的Python、Go和Java接口。用户可以在硬件配置更好的机器上试验 Python,在资源有限或需要低延迟的嵌入式环境中使用 C++ 在环境中部署模型。

TensorFlow不仅限于神经网络,它的数据流图还支持非常自由的算法表达,也可以轻松实现深度学习以外的机器学习算法。

38. 凯拉斯

Keras 是一个高度模块化的神经网络库,用 Python 实现神经网络算法c语言版,可在 TensorFlow 和 Theano 上运行。

Keras 专注于深度学习,提供迄今为止最方便的 API。用户只需将高级模块放在一起即可设计神经网络,大大降低了代码开销和认知开销。.

Keras 同时支持卷积网络和循环网络,支持级联模型或具有任意图结构的模型,无需任何代码更改即可从 CPU 计算切换到 GPU 加速。在简化编程复杂度的同时,在性能上也不逊色于 TensorFlow 和 Theano。

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论