多維陣列的矩陣運算
NumPy 的 `ndarray` 可用來表示一維、二維或更高維度的陣列。常見的矩陣運算如下。
## 1. 矩陣乘法
使用 `@` 運算子或 `np.matmul()` 進行矩陣乘法。注意:`*` 是逐元素相乘,不是矩陣乘法。
```python
import numpy as np
A = np.array([[1, 2],
[3, 4]])
B = np.array([[5, 6],
[7, 8]])
C = A @ B
print(C)
```
輸出:
```text
[[19 22]
[43 50]]
```
計算方式例如左上角元素:
```text
1×5 + 2×7 = 19
```
---
## 2. 矩陣轉置
矩陣轉置會將行與列互換,可使用 `.T` 或 `np.transpose()`。
```python
import numpy as np
A = np.array([[1, 2, 3],
[4, 5, 6]])
print(A.T)
```
輸出:
```text
[[1 4]
[2 5]
[3 6]]
```
原本 `A` 的形狀是 `2×3`,轉置後變成 `3×2`。
---
## 3. 反矩陣
使用 `np.linalg.inv()` 計算反矩陣。矩陣必須是方陣,且行列式不能為 0。
```python
import numpy as np
A = np.array([[1, 2],
[3, 4]])
A_inv = np.linalg.inv(A)
print(A_inv)
```
輸出約為:
```text
[[-2. 1. ]
[ 1.5 -0.5]]
```
反矩陣的特性是:
```python
print(A @ A_inv)
```
結果約為單位矩陣:
```text
[[1. 0.]
[0. 1.]]
```
實務上若只是要解聯立方程式,通常建議使用 `np.linalg.solve()`,而不是直接計算反矩陣。
相關學習地圖、教學課程
Python 資料工程