
- 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 - 矩陣乘法
什麼是矩陣乘法?
矩陣乘法是線性代數中的一種運算,涉及兩個矩陣相乘。它不僅僅是簡單的元素級乘法,而是遵循特定的數學規則。
在此運算中,第一個矩陣的行與第二個矩陣的列相乘,並將結果相加以形成一個新的矩陣。
矩陣乘法在物理學、計算機圖形學和機器學習等各個領域都很有用。它是變換和求解線性方程組的關鍵運算。
矩陣乘法的條件
在執行矩陣乘法之前,務必確保兩個矩陣滿足某些條件:
- 第一個矩陣的列數必須等於第二個矩陣的行數。
- 結果矩陣的維度將取自第一個矩陣的行數和第二個矩陣的列數。
例如,形狀為 (2, 3) 的矩陣可以乘以形狀為 (3, 4) 的矩陣,得到形狀為 (2, 4) 的矩陣。
矩陣乘法公式
矩陣乘法的公式如下:
對於形狀為 (m, n) 的矩陣 **A** 和形狀為 (n, p) 的矩陣 **B**,結果矩陣 **C** 將具有形狀 (m, p),並且每個元素 **cij** 由以下公式計算:
cij = Σ (aik * bkj) where i = 1 to m, j = 1 to p, and k = 1 to n
NumPy 中的矩陣乘法
在 NumPy 中,可以使用多種方法執行矩陣乘法:
- **使用 * 運算子:**此運算子可用於元素級乘法,但當應用於兩個二維陣列時,也可用於矩陣乘法。
- **使用 @ 運算子(Python 3.5 及更高版本):**@ 運算子專為矩陣乘法而設計,使程式碼更簡潔易懂。
- **使用 np.dot() 函式:**此函式計算兩個陣列的點積。對於二維陣列,它執行矩陣乘法。
- **使用 np.matmul() 函式:**與 np.dot() 函式類似,此函式專門為矩陣乘法而設計。
NumPy 中矩陣乘法的示例
在此示例中,我們將演示如何使用上述所有方法進行矩陣乘法:
import numpy as np # Define two matrices matrix_1 = np.array([[1, 2], [3, 4]]) matrix_2 = np.array([[5, 6], [7, 8]]) # Matrix multiplication using * result_1 = matrix_1 * matrix_2 # Matrix multiplication using @ result_2 = matrix_1 @ matrix_2 # Matrix multiplication using np.dot() result_3 = np.dot(matrix_1, matrix_2) # Matrix multiplication using np.matmul() result_4 = np.matmul(matrix_1, matrix_2) print("Matrix Multiplication (*):\n", result_1) print("Matrix Multiplication (@):\n", result_2) print("Matrix Multiplication (np.dot()):\n", result_3) print("Matrix Multiplication (np.matmul()):\n", result_4)
以下是獲得的輸出:
Matrix Multiplication (*): [[ 5 12] [21 32]] Matrix Multiplication (@): [[19 22] [43 50]] Matrix Multiplication (np.dot()): [[19 22] [43 50]] Matrix Multiplication (np.matmul()): [[19 22] [43 50]]
在上面的輸出中,您將看到使用不同方法進行矩陣乘法的結果相同,但方法不同。以下是每個結果的含義:
- **矩陣乘法 (*):**執行元素級乘法,這與矩陣乘法不同。它將兩個矩陣的對應元素相乘。
- **矩陣乘法 (@):**執行真正的矩陣乘法,遵循線性代數規則。它將第一個矩陣的行乘以第二個矩陣的列。
- **矩陣乘法 (np.dot()):**np.dot() 函式計算兩個矩陣的點積,對於二維陣列,它等於矩陣乘法。
- **矩陣乘法 (np.matmul()):**此函式的工作原理與 np.dot() 類似,但專門為矩陣乘法而設計。
使用較大矩陣的矩陣乘法
讓我們考慮一個更大的示例,其中我們有形狀為 (2, 3) 和 (3, 4) 的矩陣,我們將對它們進行乘法。結果矩陣將具有形狀 (2, 4)。以下是程式碼:
import numpy as np matrix_1 = np.array([[1, 2, 3], [4, 5, 6]]) matrix_2 = np.array([[7, 8, 9, 10], [11, 12, 13, 14], [15, 16, 17, 18]]) result = np.matmul(matrix_1, matrix_2) print(result)
此處,結果矩陣的形狀為 (2, 4),這與矩陣乘法的規則一致。
結果矩陣中的每個元素都是第一個矩陣的行和第二個矩陣的列中對應元素乘積的總和。
[[ 74 80 86 92] [173 188 203 218]]
現實世界中的應用
矩陣乘法是各種現實世界應用中的核心運算:
- **機器學習:**在機器學習中,尤其是在神經網路中,矩陣乘法用於計算網路層中的啟用。網路的權重表示為矩陣,乘法有助於計算輸出。
- **圖形渲染:**在計算機圖形學中,矩陣乘法用於變換空間中的物件。變換矩陣與物件的座標相乘以執行縮放、旋轉或平移。
- **經濟學:**在經濟學中,矩陣用於對線性方程組進行建模並解決諸如供求模型之類的最佳化問題。
廣告