
- 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 正則化使用弗羅貝尼烏斯範數來懲罰模型中較大的權重。
- 最佳化:矩陣範數用於衡量最佳化問題中誤差或與所需解的偏差。
- 訊號處理:在訊號處理中,矩陣範數用於衡量訊號和濾波器的“能量”或幅度。