- NumPy 教程
- NumPy - 首页
- NumPy - 简介
- NumPy - 环境
- NumPy 数组
- NumPy - Ndarray 对象
- NumPy - 数据类型
- NumPy 创建和操作数组
- NumPy - 数组创建例程
- NumPy - 数组操作
- NumPy - 从现有数据创建数组
- NumPy - 从数值范围创建数组
- NumPy - 遍历数组
- NumPy - 重塑数组
- NumPy - 连接数组
- NumPy - 堆叠数组
- NumPy - 分割数组
- NumPy - 展平数组
- NumPy - 转置数组
- NumPy 索引和切片
- NumPy - 索引和切片
- NumPy - 高级索引
- NumPy 数组属性和操作
- NumPy - 数组属性
- NumPy - 数组形状
- NumPy - 数组大小
- NumPy - 数组步长
- NumPy - 数组元素大小
- NumPy - 广播
- NumPy - 算术运算
- NumPy - 数组加法
- NumPy - 数组减法
- NumPy - 数组乘法
- NumPy - 数组除法
- NumPy 高级数组操作
- NumPy - 交换数组的轴
- NumPy - 字节交换
- NumPy - 复制和视图
- NumPy - 元素级数组比较
- NumPy - 过滤数组
- NumPy - 连接数组
- NumPy - 排序、搜索和计数函数
- NumPy - 搜索数组
- NumPy - 数组的并集
- NumPy - 查找唯一行
- NumPy - 创建日期时间数组
- NumPy - 二元运算符
- NumPy - 字符串函数
- NumPy - 数学函数
- NumPy - 统计函数
- NumPy - 矩阵库
- NumPy - 线性代数
- NumPy - Matplotlib
- NumPy - 使用 Matplotlib 绘制直方图
- NumPy - NumPy 的 I/O 操作
- NumPy 排序和高级操作
- NumPy - 排序数组
- NumPy - 沿轴排序
- NumPy - 使用花式索引排序
- NumPy - 结构化数组
- NumPy - 创建结构化数组
- NumPy - 操作结构化数组
- NumPy - 字段访问
- NumPy - 记录数组
- Numpy - 加载数组
- Numpy - 保存数组
- NumPy - 将值追加到数组
- NumPy - 交换数组的列
- NumPy - 向数组插入轴
- NumPy 处理缺失数据
- NumPy - 处理缺失数据
- NumPy - 识别缺失值
- NumPy - 删除缺失数据
- NumPy - 估算缺失数据
- NumPy 性能优化
- NumPy - 使用数组进行性能优化
- NumPy - 使用数组进行向量化
- NumPy - 数组的内存布局
- Numpy 线性代数
- NumPy - 线性代数
- NumPy - 矩阵库
- NumPy - 矩阵加法
- NumPy - 矩阵减法
- NumPy - 矩阵乘法
- NumPy - 元素级矩阵运算
- NumPy - 点积
- NumPy - 矩阵求逆
- NumPy - 行列式计算
- NumPy - 特征值
- NumPy - 特征向量
- NumPy - 奇异值分解
- NumPy - 求解线性方程组
- NumPy - 矩阵范数
- NumPy 元素级矩阵运算
- NumPy - 求和
- NumPy - 求平均值
- NumPy - 求中位数
- NumPy - 求最小值
- NumPy - 求最大值
- NumPy 集合运算
- NumPy - 唯一元素
- NumPy - 交集
- NumPy - 并集
- NumPy - 差集
- NumPy 有用资源
- NumPy 编译器
- NumPy - 快速指南
- NumPy - 有用资源
- NumPy - 讨论
NumPy - 矩阵范数
什么是矩阵范数?
矩阵范数是一个将非负数赋予矩阵的函数。它提供了一种衡量矩阵大小或幅度的度量。
一般来说,矩阵范数用于量化矩阵的大小,它们在涉及矩阵方程的问题中起着重要作用,例如求解线性方程组或执行矩阵分解。
常见的矩阵范数类型
有几种类型的矩阵范数,但最常用的是:
- 弗罗贝尼乌斯范数
- 1-范数
- 无穷范数
- 2-范数(谱范数)
弗罗贝尼乌斯范数
弗罗贝尼乌斯范数是最简单和最常用的矩阵范数之一。它定义为矩阵元素的绝对平方和的平方根。数学上,它由以下公式给出:
‖A‖F = √(Σi=1 Σj=1 |aij|2)
其中A是矩阵,aij是矩阵的元素。弗罗贝尼乌斯范数等价于将矩阵视为向量时的L2范数。
1-范数
矩阵的1-范数(也称为最大列和范数)定义为最大绝对列和。数学上,它由以下公式给出:
‖A‖1 = maxj Σi=1 |aij|
简单来说,1-范数是矩阵任意一列中元素的绝对值的和的最大值。
无穷范数
矩阵的无穷范数(也称为最大行和范数)定义为最大绝对行和。数学上,它由以下公式给出:
‖A‖∞ = maxi Σj=1 |aij|
无穷范数给出矩阵任意一行中元素的绝对值的和的最大值。
2-范数(谱范数)
矩阵的2-范数(也称为谱范数)定义为矩阵的最大奇异值。它衡量矩阵应用于向量时的最大拉伸因子。2-范数由以下公式给出:
‖A‖2 = σmax(A)
其中,σmax(A)是矩阵A的最大奇异值。在这种情况下,2-范数与矩阵的奇异值相关,可以使用奇异值分解 (SVD) 计算。
NumPy 中的矩阵范数
NumPy 提供了计算各种矩阵范数的函数。numpy.linalg.norm()函数可用于计算大多数常见的矩阵范数。让我们探索如何对不同类型的矩阵范数使用此函数。
使用 NumPy 计算弗罗贝尼乌斯范数
要使用 NumPy 计算弗罗贝尼乌斯范数,我们使用numpy.linalg.norm()函数,并将其参数ord='fro'。
示例
在以下示例中,矩阵A的弗罗贝尼乌斯范数是通过取矩阵中所有元素的平方和的平方根来计算的:
import numpy as np # Define a matrix A A = np.array([[1, 2], [3, 4]]) # Compute the Frobenius norm of the matrix frobenius_norm = np.linalg.norm(A, 'fro') print("Frobenius norm of A:", frobenius_norm)
以下是获得的输出:
Frobenius norm of A: 5.477225575051661
使用 NumPy 计算 1-范数
要计算 1-范数,我们使用numpy.linalg.norm()函数,并将其参数ord=1。矩阵的 1-范数是矩阵任意一列中元素的绝对值的和的最大值。
示例
在这种情况下,列和为 4 和 6,因此 1-范数为 6:
import numpy as np # Define a matrix A A = np.array([[1, 2], [3, 4]]) # Compute the 1-norm of the matrix one_norm = np.linalg.norm(A, 1) print("1-norm of A:", one_norm)
以下是获得的输出:
1-norm of A: 6.0
使用 NumPy 计算无穷范数
要计算无穷范数,我们使用numpy.linalg.norm()函数,并将其参数ord=np.inf。矩阵的无穷范数是矩阵任意一行中元素的绝对值的和的最大值。
示例
在这种情况下,行和为 3 和 7,因此无穷范数为 7:
import numpy as np # Define a matrix A A = np.array([[1, 2], [3, 4]]) # Compute the infinity norm of the matrix infinity_norm = np.linalg.norm(A, np.inf) print("Infinity norm of A:", infinity_norm)
以下是获得的输出:
Infinity norm of A: 7.0
使用 NumPy 计算 2-范数
要计算 2-范数(谱范数),我们使用numpy.linalg.norm()函数,并将其参数ord=2。矩阵的 2-范数(谱范数)是矩阵的最大奇异值,它衡量矩阵应用于向量时的最大拉伸因子。
示例
以下是在 NumPy 中计算 2-范数的示例:
import numpy as np # Define a matrix A A = np.array([[1, 2], [3, 4]]) # Compute the 2-norm of the matrix two_norm = np.linalg.norm(A, 2) print("2-norm (spectral norm) of A:", two_norm)
以下是获得的输出:
2-norm (spectral norm) of A: 5.464985704219043
矩阵范数的应用
矩阵范数在数值分析、机器学习、优化等领域有许多实际应用:
- 数值稳定性:矩阵范数用于分析数值算法的稳定性,尤其是在求解线性系统或执行矩阵分解时。
- 机器学习:在机器学习中,矩阵范数通常用于正则化模型并防止过拟合。例如,L2 正则化使用弗罗贝尼乌斯范数来惩罚模型中较大的权重。
- 优化:矩阵范数用于衡量优化问题中误差或与所需解的偏差。
- 信号处理:在信号处理中,矩阵范数用于衡量信号和滤波器的“能量”或幅度。