
- 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 模組中提供的 concatenate() 函式在 Numpy 中連線陣列。
concatenate() 函式
NumPy 中的 concatenate() 函式用於沿指定軸連線(組合)陣列。它允許你根據提供的 axis 引數沿行或列組合陣列。以下是語法:
numpy.concatenate((a1, a2, ...), axis=0, out=None)
其中,
a1, a2, ... − 這些是要連線的陣列序列。這些陣列除了由 axis 指定的軸之外,必須在所有軸上具有相同的形狀。預設為 0(沿行)。使用 1 沿列連線。
axis − 指定沿哪個軸連線陣列。
out(可選)− 這允許你指定一個輸出陣列,連線結果將儲存在其中。
沿行連線陣列
在 NumPy 中沿行連線陣列意味著垂直堆疊陣列,將一個數組放在另一個數組的頂部以建立一個更大的陣列。這對於組合資料集或垂直擴充套件資料很有用。
在 NumPy 中,可以使用 numpy.concatenate() 函式並將“axis”引數設定為“0”來實現此目的。
示例
在以下示例中,我們使用 numpy.concatenate() 函式沿行連線兩個 NumPy 陣列“arr1”和“arr2”:
import numpy as np arr1 = np.array([[1, 2, 3], [4, 5, 6]]) arr2 = np.array([[7, 8, 9], [10, 11, 12]]) # Concatenate along rows concatenated_arr = np.concatenate((arr1, arr2), axis=0) print("Concatenated Array along rows:",concatenated_arr)
獲得以下輸出:
Concatenated Array along rows: [[ 1 2 3] [ 4 5 6] [ 7 8 9] [10 11 12]]
沿列連線陣列
我們還可以透過水平堆疊陣列在 NumPy 中沿列連線陣列,將一個數組放在另一個數組旁邊以水平擴充套件資料。這對於組合資料集很有用,其中每個陣列表示需要連線的資料列。
在 NumPy 中,可以使用 numpy.concatenate() 函式並將“axis”引數設定為“1”來實現此目的。
示例
在下面的示例中,我們使用 numpy.concatenate() 函式沿列連線兩個 NumPy 陣列“arr1”和“arr2”:
import numpy as np # Create two arrays arr1 = np.array([[1, 2], [3, 4]]) arr2 = np.array([[5, 6], [7, 8]]) # Concatenate along columns concatenated_arr = np.concatenate((arr1, arr2), axis=1) print("Concatenated Array along columns:") print(concatenated_arr)
這將產生以下結果:
Concatenated Array along columns: [[1 2 5 6] [3 4 7 8]]
連線具有混合維度的陣列
在 NumPy 中連線具有混合維度的陣列涉及組合最初具有不同形狀的陣列。
為了實現這一點,我們使用廣播技術來調整陣列的形狀,以便它們與連線相容。這涉及擴充套件較小陣列的維度以沿連線軸與較大陣列匹配。
在 NumPy 中,可以使用 np.reshape()、np.expand_dims() 和切片等函式調整陣列的維度。
示例:連線 1D 陣列和 2D 陣列
讓我們考慮連線一個 1D 陣列和一個 2D 陣列。1D 陣列將沿適當的維度擴充套件以匹配 2D 陣列:
import numpy as np # Create a 1D array arr1 = np.array([1, 2, 3]) # Create a 2D array arr2 = np.array([[4, 5, 6], [7, 8, 9]]) # Expand dimensions of the 1D array to match the 2D array for concatenation along rows expanded_arr1 = np.expand_dims(arr1, axis=0) # Concatenate along rows (axis=0) concatenated_arr = np.concatenate((expanded_arr1, arr2), axis=0) print("Concatenated Array with Mixed Dimensions along rows:") print(concatenated_arr)
以上程式碼的輸出如下:
Concatenated Array with Mixed Dimensions along rows: [[1 2 3] [4 5 6] [7 8 9]]
示例:連線 2D 陣列和 3D 陣列
如果你有更多維度的陣列,你可以類似地擴充套件它們的維度以相互匹配。例如,連線 2D 陣列和 3D 陣列涉及擴充套件 2D 陣列的維度:
import numpy as np # Create a 2D array arr1 = np.array([[1, 2], [3, 4]]) # Create a 3D array arr2 = np.array([[[5, 6], [7, 8]], [[9, 10], [11, 12]]]) # Expand dimensions of the 2D array to match the 3D array for concatenation along the third dimension (axis=2) expanded_arr1 = np.expand_dims(arr1, axis=2) # Concatenate along the third dimension (axis=2) concatenated_arr = np.concatenate((expanded_arr1, arr2), axis=2) print("Concatenated Array with Mixed Dimensions along axis=2:") print(concatenated_arr)
獲得的輸出如下所示:
Concatenated Array with Mixed Dimensions along axis=2: [[[ 1 5 6] [ 2 7 8]] [[ 3 9 10] [ 4 11 12]]]
沿特定軸連線陣列
你可以使用 concatenate() 函式的 axis 引數沿“0”和“1”以外的軸連線陣列。此引數確定將沿哪個維度連線陣列。透過更改 axis 的值,你可以控制陣列是沿行、列還是更高維度連線。
對於具有兩個以上維度的陣列,你可以指定更高的軸進行連線。例如,沿第三軸(axis=2)連線涉及沿其深度組合陣列。
示例
在以下示例中,我們沿第三維度連線兩個 3D 陣列:
import numpy as np # 3D arrays arr1 = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]) arr2 = np.array([[[9, 10], [11, 12]], [[13, 14], [15, 16]]]) # Concatenate along the third dimension (axis=2) result = np.concatenate((arr1, arr2), axis=2) print("Concatenated along third dimension:") print(result)
執行以上程式碼後,我們將獲得以下輸出:
Concatenated along third dimension: [[[ 1 2 9 10] [ 3 4 11 12]] [[ 5 6 13 14] [ 7 8 15 16]]]
使用 stack() 函式連線陣列
NumPy stack() 函式也可用於沿新軸連線陣列。與 numpy.concatenate() 沿現有軸連線陣列不同,numpy.stack() 會新增一個額外的維度,在結果中建立一個新軸。以下是語法:
numpy.stack(arrays, axis=0)
其中,
arrays − 要堆疊的陣列序列。所有陣列必須具有相同的形狀。
axis − 沿哪個軸堆疊陣列。預設為 0。
示例
在下面的示例中,我們使用 NumPy stack() 函式沿新的第三軸(axis=2)堆疊兩個 2D 陣列:
import numpy as np # Example 2D arrays arr1 = np.array([[1, 2], [3, 4]]) arr2 = np.array([[5, 6], [7, 8]]) # Stack along a new third axis result = np.stack((arr1, arr2), axis=2) print("Stacked along a new axis:") print(result)
產生的結果如下:
Stacked along a new axis: [[[1 5] [2 6]] [[3 7] [4 8]]]