
- 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 - 陣列堆疊
NumPy 陣列堆疊
NumPy 中的陣列堆疊是指沿新維度組合多個數組,從而建立更高維度的陣列。這與連線不同,連線是在現有軸上組合陣列,不會新增新的維度。
NumPy 提供了幾個函式來實現堆疊。它們如下所示:
- 使用 numpy.stack() 函式
- 使用 numpy.vstack() 函式
- 使用 numpy.hstack() 函式
- 使用 numpy.dstack() 函式
- 使用 numpy.column_stack() 函式
使用 stack() 函式堆疊陣列
我們可以使用 NumPy 中的 stack() 函式沿新軸堆疊一系列陣列,在結果中建立一個新維度。
與沿現有軸組合陣列的 numpy.concatenate() 函式不同,numpy.stack() 函式在指定位置向被堆疊的陣列新增一個新軸。
以下是 NumPy 中 stack() 函式的語法:
np.stack(arrays, axis=0)
其中:
arrays − 要堆疊的陣列序列。
axis − 堆疊陣列的軸。預設值為 0,這會在最前面新增一個新軸。
示例:堆疊一維陣列
在下面的示例中,我們使用 numpy.stack() 函式沿新軸 (axis 0) 堆疊三個一維陣列,得到一個二維陣列:
import numpy as np # arrays arr1 = np.array([1, 2, 3]) arr2 = np.array([4, 5, 6]) arr3 = np.array([7, 8, 9]) # Stack arrays along a new axis stacked_arr = np.stack((arr1, arr2, arr3), axis=0) print("Stacked Array along a new axis (Axis 0):") print(stacked_arr)
獲得的輸出如下:
Stacked Array along a new axis (Axis 0): [[1 2 3] [4 5 6] [7 8 9]]
示例:更改軸
numpy.stack() 函式中的“axis”引數決定了新軸的插入位置。透過更改 axis 的值,可以控制陣列的堆疊方式:
import numpy as np # arrays arr1 = np.array([1, 2, 3]) arr2 = np.array([4, 5, 6]) arr3 = np.array([7, 8, 9]) # Stack arrays along axis 1 stacked_arr = np.stack((arr1, arr2, arr3), axis=1) print("Stacked Array along Axis 1:") print(stacked_arr)
這將產生以下結果:
Stacked Array along Axis 1: [[1 4 7] [2 5 8] [3 6 9]]
示例:堆疊多維陣列
numpy.stack() 函式也可以用於堆疊多維陣列。該函式向高維陣列新增一個新軸,並相應地堆疊它們。
在這裡,我們堆疊兩個二維陣列:
import numpy as np # 2D arrays arr1 = np.array([[1, 2], [3, 4]]) arr2 = np.array([[5, 6], [7, 8]]) # Stack arrays along a new axis stacked_arr = np.stack((arr1, arr2), axis=0) print("Stacked 2D Arrays along a new axis (Axis 0):") print(stacked_arr)
以上程式碼的輸出如下:
Stacked 2D Arrays along a new axis (Axis 0): [[[1 2] [3 4]] [[5 6] [7 8]]]
使用 column_stack() 函式堆疊陣列
NumPy 中的 numpy.column_stack() 函式用於將一維陣列作為列堆疊到二維陣列中,或者將二維陣列按列堆疊。此函式提供了一種沿第二個軸 (axis=1) 組合陣列的方法,有效地增加了結果陣列中的列數。
以下是語法:
np.column_stack(tup)
其中,tup 是要堆疊的陣列元組。陣列可以是一維或二維的,但必須具有相同的行數。
示例:將一維陣列作為列堆疊
在下面的示例中,我們使用 NumPy column_stack() 函式將兩個一維陣列作為列堆疊到二維陣列中:
import numpy as np # 1D arrays arr1 = np.array([1, 2, 3]) arr2 = np.array([4, 5, 6]) # Column-stack 1D arrays stacked_arr_1d = np.column_stack((arr1, arr2)) print("Stacked 1D arrays as 2D array:") print(stacked_arr_1d)
我們得到如下所示的輸出:
Stacked 1D arrays as 2D array: [[1 4] [2 5] [3 6]]
示例:按列堆疊二維陣列
在這裡,我們使用 NumPy column_stack() 函式按列堆疊兩個二維陣列:
import numpy as np # 2D arrays arr3 = np.array([[1, 2], [3, 4]]) arr4 = np.array([[5, 6], [7, 8]]) # Column-stack 2D arrays stacked_arr_2d = np.column_stack((arr3, arr4)) print("Stacked 2D arrays column-wise:") print(stacked_arr_2d)
獲得的輸出如下:
Stacked 2D arrays column-wise: [[1 2 5 6] [3 4 7 8]]
垂直堆疊
我們還可以使用 NumPy 中的 vstack() 函式垂直(按行)堆疊陣列。它等同於使用 numpy.concatenate() 函式和 "axis=0",其中陣列沿第一個軸連線。
這將產生一個行數增加的陣列,將多個數組按行組合。以下是語法:
numpy.vstack(tup)
其中,tup 是要垂直堆疊的陣列元組。所有陣列必須具有相同的列數。
示例
在下面的示例中,我們使用 NumPy vstack() 函式垂直堆疊兩個陣列:
import numpy as np # arrays arr1 = np.array([[1, 2, 3], [4, 5, 6]]) arr2 = np.array([[7, 8, 9], [10, 11, 12]]) # Stack arrays vertically stacked_arr = np.vstack((arr1, arr2)) print("Vertically Stacked Array:") print(stacked_arr)
獲得的輸出如下:
Vertically Stacked Array: [[ 1 2 3] [ 4 5 6] [ 7 8 9] [10 11 12]]
水平堆疊
我們可以使用 NumPy 中的 hstack() 函式水平(按列)堆疊陣列。它等同於使用 numpy.concatenate() 函式和 "axis=1",其中二維陣列沿第二個軸連線。
這將產生一個列數增加的陣列,將多個數組按列組合。以下是語法:
numpy.hstack(tup)
其中,tup 是要水平堆疊的陣列元組。所有陣列必須具有相同的行數。
示例
在下面的示例中,我們使用 NumPy hstack() 函式水平堆疊兩個陣列:
import numpy as np # arrays arr1 = np.array([[1, 2], [3, 4]]) arr2 = np.array([[5, 6], [7, 8]]) # Stack arrays horizontally stacked_arr = np.hstack((arr1, arr2)) print("Horizontally Stacked Array:") print(stacked_arr)
執行上述程式碼後,我們得到以下輸出:
Horizontally Stacked Array: [[1 2 5 6] [3 4 7 8]]
深度堆疊
numpy.dstack() 函式用於沿第三維度(也稱為深度維度)堆疊陣列。這將按深度組合陣列,有效地在結果陣列中建立一個新維度。
當您想要將多個二維陣列組合成單個三維陣列時,它特別有用。以下是語法:
np.dstack(tup)
其中,tup 是要沿第三維度堆疊的陣列元組。所有陣列的前兩個維度必須具有相同的形狀。
示例
在這個例子中,我們使用 NumPy dstack() 函式沿第三維度堆疊兩個陣列:
import numpy as np # arrays arr1 = np.array([[1, 2], [3, 4]]) arr2 = np.array([[5, 6], [7, 8]]) # Stack arrays along the third dimension stacked_arr = np.dstack((arr1, arr2)) print("Depth-wise Stacked Array:") print(stacked_arr)
產生的結果如下:
Depth-wise Stacked Array: [[[1 5] [2 6]] [[3 7] [4 8]]]