ndarray
簡介
在 NumPy 中,ndarray
(N-dimensional array) 是一種高效能的多維陣列,可用來處理向量、矩陣、數據運算。
✅ 1. 建立 ndarray
🔹 使用 np.array()
建立陣列
範例
輸出
範例
輸出
✅ 2. ndarray
重要屬性
屬性 | 說明 | 範例 |
---|---|---|
.shape |
陣列的形狀 (行, 列) | arr.shape |
.dtype |
陣列元素的資料型別 | arr.dtype |
.ndim |
陣列的維度數 | arr.ndim |
.size |
陣列中的元素總數 | arr.size |
print(arr2.shape) # (2, 3) → 2 行 3 列
print(arr2.dtype) # int64(視系統而定)
print(arr2.ndim) # 2
print(arr2.size) # 6
✅ 3. 快速建立特殊陣列
NumPy 提供許多方法來快速建立陣列:
np.zeros((2, 3)) # 建立 2x3 全為 0 的陣列
np.ones((3, 3)) # 建立 3x3 全為 1 的陣列
np.full((2, 2), 7) # 建立 2x2 全為 7 的陣列
np.eye(3) # 建立 3x3 單位矩陣 (對角線為 1)
np.arange(1, 10, 2) # [1 3 5 7 9],類似 range()
np.linspace(0, 1, 5) # 均分 5 個數值
✅ 4. 陣列運算
NumPy 支援向量化運算,能夠比 Python 內建 list
更快:
arr = np.array([1, 2, 3, 4])
# 數學運算(每個元素計算)
print(arr + 10) # [11 12 13 14]
print(arr * 2) # [2 4 6 8]
print(arr ** 2) # [ 1 4 9 16]
# 陣列之間運算
arr2 = np.array([10, 20, 30, 40])
print(arr + arr2) # [11 22 33 44]
✅ 5. 陣列索引與切片
NumPy 陣列支援 Python 的索引與切片:
arr = np.array([[10, 20, 30], [40, 50, 60]])
print(arr[0, 1]) # 取得第一行第二個元素 → 20
print(arr[:, 1]) # 取得所有行的第二個元素 → [20 50]
print(arr[1, :]) # 取得第二行的所有元素 → [40 50 60]
print(arr[0, 1:]) # 取得第一行的 20 之後的元素 → [20 30]
✅ 6. 陣列變形與合併
🔹 陣列變形 (reshape
)
🔹 輸出
🔹 陣列合併
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6]])
print(np.vstack([a, b])) # 垂直合併(新增一行)
print(np.hstack([a, b.T])) # 水平合併(新增一列)
📌 總結
操作 | 方式 |
---|---|
建立陣列 | np.array([...]) |
查看屬性 | .shape , .dtype , .ndim , .size |
特殊陣列 | np.zeros() , np.ones() , np.arange() , np.linspace() |
數學運算 | + , - , * , / , ** |
索引 & 切片 | arr[i, j] , arr[:, j] , arr[i, :] |
變形 & 合併 | .reshape() , np.vstack() , np.hstack() |
🚀 ndarray
是 NumPy 最核心的數據結構,理解它能讓你更高效地處理數據! 😊