Skip to content

第6章:NumPy库

NumPy是Python中用于科学计算的基础库,提供了强大的多维数组对象和相应的工具集,是进行数据分析和数值计算的基石。本章将介绍NumPy库的基本概念、数组操作以及其在科学计算中的应用。

6.1 NumPy简介和安装

6.1.1 NumPy概述

  • NumPy的用途:高效的数组操作、数学函数、线性代数运算等。
  • 性能优势:NumPy的数组操作比Python原生列表快得多。

6.1.2 安装NumPy

  • 使用pip安装:通过Python的包管理器pip安装NumPy。
  • 验证安装:检查NumPy版本以确认安装成功。

6.2 多维数组对象ndarray

6.2.1 创建数组

  • 直接创建:使用np.array函数创建NumPy数组。
  • 特殊创建:使用np.zerosnp.onesnp.empty等函数创建特定类型的数组。

6.2.2 数组属性

  • 形状和大小:数组的形状(shape)和大小(size)。
  • 数据类型:数组的数据类型(dtype)。

6.2.3 数组索引和切片

  • 基本索引:访问数组元素。
  • 切片操作:获取数组的一部分。

6.3 广播(Broadcasting)机制

6.3.1 广播规则

  • 维度对齐:NumPy在进行算术运算时的维度对齐规则。
  • 扩展维度:如何自动扩展数组的维度以进行元素级运算。

6.3.2 应用举例

  • 算术运算:使用广播进行向量和矩阵运算。
  • 条件选择:基于条件的数组元素选择。

6.4 常用的数学函数

6.4.1 统计函数

  • 均值和标准差:计算数组的均值(np.mean)和标准差(np.std)。
  • 最大值和最小值:寻找数组中的最大值(np.max)和最小值(np.min)。

6.4.2 线性代数函数

  • 矩阵乘法:使用np.dot@运算符进行矩阵乘法。
  • 特征值和特征向量:计算矩阵的特征值(np.linalg.eigvals)和特征向量(np.linalg.eig)。

6.4.3 随机数生成

  • 随机数:使用np.random模块生成随机数。
  • 分布采样:从特定概率分布中采样,如正态分布(np.random.normal)。

6.5 数组操作

6.5.1 形状操作

  • reshape:改变数组的形状而不改变其数据。
  • flatten和ravel:将多维数组展平成一维数组。

6.5.2 拆分和合并

  • 拆分:使用np.splitnp.hsplitnp.vsplitnp.dsplit拆分数组。
  • 合并:使用np.concatenatenp.stacknp.vstack合并数组。

6.6 结论

NumPy是Python中进行科学计算的核心库,提供了高效的数组操作和大量的数学函数。掌握NumPy的使用对于数据分析、机器学习和深度学习等领域至关重要。