Python基础(九):Python计算生态概览

Python 计算生态概览

9.1 从数据处理到人工智能

9.1.1 数据分析

  • numpy:表达 n 维数组的最基础库

    将 n 维数组看成简单的数据对象进行直接的操作和运算,这是 numpy 最大的价值。

    • Python 接口使用,C 语言实现,计算速度优异
    • Python 数据分析和科学计算的基础库
    • 提供直接的矩阵运算、广播函数、线性代数等功能
  • pandas

    • 提供了简单易用的数据结构和数据分析工具

    • 由两种数据结构组成:SeriesDataFrame

      Series 是由数字构成的列表,其中每个元素都有数据和索引

      DataFrame 类似电子表格,同时具有行和列索引,可以将其看作是由 Series 构成的字典

    • Python 最主要的数据分析功能库,基于 numpy 开发

  • scipy

    • 提供了一批数学算法及工程数据运算功能
    • Python 最主要的科学计算功能库,基于 numpy 开发

9.1.2 数据可视化

  • matplotlib:高质量的二维数据可视化功能库

    • 提供了超过 100 种数据可视化展示效果
    • 通过 matplotlib.pyplot 子库调用可视化效果
    • Python 最主要的数据可视化功能库,基于 numpy 开发
  • seaborn:统计类数据可视化功能库

    • 提供了一批高层次的统计类数据可视化展示效果
    • 基于 matplotlib 开发,支持 numpy 和 pandas
  • mayavi:三维科学数据可视化功能库

9.1.3 文本处理

  • pypdf2:用来处理 pdf 文件的工具集

  • NLTK:自然语言文本处理第三方库

    • 提供了一批简单易用的自然语言文本处理功能
    • 最优秀的 Python 自然语言处理库
  • Python-docx:创建或更新 Word 文件的第三方库

9.1.4 机器学习

  • scikit-learn:机器学习方法工具集

    • 提供一批统一化的机器学习方法功能接口
    • 提供分类、回归、聚类、强化学习等计算功能
    • 基于 NumPy、SciPy 和 matplotlib 构建
  • TensorFlow:机器学习计算框架

  • MxNet:基于神经网络的深度学习计算框架

9.2 从web解析到网络空间

9.2.1 网络爬虫

  • requests:网络爬虫功能库

  • scrapy:网络爬虫框架

  • pyspider:web 页面爬取系统

9.2.2 web信息提取

  • beautifulsoup4:HTML 和 XML 的解析库

  • re:正则表达式解析和处理功能库

    Python最主要的标准库之一,无需安装

  • Python-Goose:提取文章类型 web 页面的功能库

9.2.3 web网站开发

  • Django:复杂的 web 应用框架

  • Pyramid:中规模的 web 应用框架

  • Flask:web 应用开发微框架

    提供了最简单的构建 web 系统的应用框架

9.2.4 网络应用开发

  • WeRoBot:微信公众号开发框架

  • aip:百度 AI 开放平台接口

  • MyQR:二维码生成第三方库

9.3 从人机交互到艺术设计

9.3.1 图形用户界面

  • PyQt5:Qt 开发框架的 Python 接口

  • wxPython:专用于 Python 的跨平台 GUI 开发框架

  • PyGObject:使用 GTK+ 开发 GUI 的功能库

    GTK+ 是一套跨多种平台的图形工具包

9.3.2 游戏开发

  • PyGame:简单的游戏开发功能库

  • Panda3D:开源跨平台的 3D 渲染和游戏开发库

  • cocos2d:构建2d游戏和图形界面交互式应用的框架

9.3.3 虚拟现实

  • VR Zero:在树莓派上开发 VR 应用的 Python 库

  • pyovr:针对 Oculus 公司 VR 设备的库

  • Vizard:基于 Python 的通用 VR 开发引擎

9.3.4 图形艺术

  • Quads:展示迭代艺术的第三方库

  • ascii_art:采用 ASCII 码展示图形艺术的第三方库

  • turtle:海龟绘图体系

导图

Tips

NumPy

  1. 介绍

    NumPy 是 Python 科学计算的基本库,提供了多维数组对象、各种派生对象(如矩阵)和一系列用于对数组进行快速操作的例程,包括数学、逻辑、形状操作、排序、选择、I/O、离散傅里叶变换、基本线性代数、基本统计操作、随机模拟等等。

  2. NumPy 库的核心是 ndarray 对象。NumPy 数组和标准 Python 序列之间有几个重要的区别:

    • NumPy 数组在创建时具有固定的大小,与 Python 列表(可以动态增长)不同。更改 ndarray 的大小将创建一个新数组并删除原始数组。
    • NumPy 数组中的元素都具有相同的数据类型,因此在内存中的大小相同。
    • NumPy 数组有助于对大量数据进行高级数学和其他类型的操作。与使用 Python 的内置序列相比,此类操作的执行效率更高,代码更少。
  3. 创建数组

    import numpy as np

    函数 作用
    np.array() 创建一个数组。参数传递一个 python 序列
    np.zeros() 返回一个给定形状和类型的新数组,用 0 填充。
    np.ones() 返回一个给定形状和类型的新数组,用 1 填充。
    np.empty() 返回给定形状和类型的新数组,初始内容是随机的,取决于内存的状态。
    np.arange() 返回给定间隔内均匀分布的数组,指定范围和步长
    np.linspace() 返回指定间隔内均匀分布的数组,指定范围和个数
  4. 数组属性

    属性 作用
    ndarray.shape 数组维度的元组。通常用于获取数组的当前形状。
    ndarray.ndim 数组维度的数量,即轴的数量,称为秩。
    ndarray.size 数组中的元素数。
    ndarray.itemsize 一个数组元素的长度(以字节为单位)。
    ndarray.dtype 数组元素的数据类型。
  5. 索引和切片:像对 Python 列表进行切片一样对 NumPy 数组进行索引和切片。

    如果要从数组中选择满足特定条件的值, NumPy 很简单。print(a[(a > 2) & (a < 11)])

  6. 从现有数据创建数组:

    函数 作用
    np.vstack((a1, a2)) 垂直堆叠两个现有阵列
    np.hstack((a1, a2)) 水平堆叠两个现有阵列
    np.hsplit(x, 3) 将数组 x 拆分为三个形状相等的数组
    b = a 简单赋值不会复制对象或其数据。
    c = a.view() 浅拷贝,创建一个查看相同数据的新数组对象
    d = a.copy() 深拷贝,创建数组及其数据的完整副本。
  7. 数组操作

    • 基本操作:加+、减-、乘*、除/、求和 ndarray.sum()

      广播:NumPy 明白基本操作应该发生在每个元素上。

    • 更有用的操作:ndarray.max()ndarray.min()

  8. 其他操作:

    函数 作用
    np.flip() 反转数组
    ndarray.flatten() 将阵列展平为一维数组
  9. 使用 Matplotlib 绘制数组

Matplotlib

matplotlib.pyplot

  1. 介绍:

    matplotlib.pyplot 是一个函数集合,使得 matplotlib 像 MATLAB 一样工作。每个函数对图形进行一些更改: 例如,创建一个图形,在图形中创建绘图区域,在绘图区域中绘制一些线条,用标签等装饰绘图。

    import matplotlib.pyplot as plt

  2. 一些绘图命令

    函数 作用
    plt.figure() 创建新图形
    plt.grid() 配置网格线
    plt.plot() 将 x 与 y 绘制为线条或标记
    plt.subplot() 将子图添加到当前图形
    plt.show() 展示所有打开的图形
    plt.text() 将文本 s 添加到坐标 (x,y) 处的轴
    plt.title() 设置轴的标题
    plt.xlabel()/plt.ylabel() 设置 x / y 轴的标签
    plt.xlim()/plt.ylim() 获取或设置当前轴 x / y 的范围

Python基础(九):Python计算生态概览
https://luminous-ee.github.io/2023/01/30/Python基础(九):Python计算生态概览/
作者
落与
发布于
2023年1月30日
许可协议