多維陣列的基本運算
NumPy 的 `ndarray` 是用來儲存多維數值資料的陣列,支援高效率的向量化運算,不需要自行撰寫迴圈。
## 1. Element-Wise 運算
對兩個形狀相同的陣列,逐元素進行運算。
```python
import numpy as np
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
result = a + b
print(result)
# [5 7 9]
```
`a + b` 會分別計算:
```text
[1+4, 2+5, 3+6]
```
常見的 Element-Wise 運算包括:
```python
a + b
a - b
a * b
a / b
a ** b
```
---
## 2. 純量運算
將陣列中的每個元素,與同一個純量進行運算。
```python
import numpy as np
a = np.array([1, 2, 3])
result = a * 10
print(result)
# [10 20 30]
```
這相當於:
```text
[1×10, 2×10, 3×10]
```
也可以進行加、減、除、次方等運算:
```python
a + 5
a - 1
a / 2
a ** 2
```
---
## 3. 常用的通用函式(Universal Functions, ufunc)
NumPy 提供許多可對陣列逐元素運算的函式,例如 `np.sqrt()`、`np.exp()`、`np.sin()`、`np.log()` 等。
```python
import numpy as np
a = np.array([1, 4, 9])
result = np.sqrt(a)
print(result)
# [1. 2. 3.]
```
`np.sqrt(a)` 會對陣列中的每個元素取平方根:
```text
[√1, √4, √9]
```
常見通用函式包括:
```python
np.abs(a) # 絕對值
np.sqrt(a) # 平方根
np.exp(a) # 指數函式
np.log(a) # 自然對數
np.sin(a) # 正弦
np.maximum(a, b) # 逐元素取較大值
```
這些運算通常比使用 Python `for` 迴圈更簡潔且有效率。
相關學習地圖、教學課程
Python 資料工程