
- 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 中,我們可以使用union1d()函式來實現這一點。
NumPy 中的陣列並集類似於集合論中的並集運算,其中來自多個集合的所有唯一元素都被組合成一個集合。
使用 union1d() 函式
NumPy 中的 np.union1d() 函式用於計算兩個陣列的並集。此函式返回一個排序後的唯一值陣列,這些值存在於任一輸入陣列中。以下是語法 -
numpy.union1d(arr1, arr2)
其中,
- arr1 -它是第一個輸入陣列。此陣列可以是任何形狀或資料型別,但通常為簡單起見為 1D 陣列。
- arr2 -它是第二個輸入陣列。它應該與“arr1”具有相同的資料型別。
示例
在以下示例中,我們使用 union1d() 函式查詢 2 個數組“arr1”和“arr2”的並集 -
import numpy as np # Define two arrays arr1 = np.array([1, 2, 3, 4]) arr2 = np.array([3, 4, 5, 6]) # Compute the union of the two arrays union_result = np.union1d(arr1, arr2) print("Union of two arrays:", union_result)
獲得以下輸出 -
Union of two arrays: [1 2 3 4 5 6]
多個數組的並集
要查詢兩個以上陣列的並集,您可以多次使用 union1d() 函式。這涉及迭代地將函式應用於陣列對,直到所有陣列都包含在並集中。
或者,您可以使用 np.concatenate() 和 np.unique() 等函式。以下是語法 -
numpy.concatenate((array1, array2, ...)) numpy.unique(array)
示例:順序並集
在下面的示例中,我們使用 union1d() 函式迭代地查詢 3 個數組的並集 -
import numpy as np # Define multiple 1D arrays arr1 = np.array([1, 2, 3]) arr2 = np.array([2, 3, 4]) arr3 = np.array([4, 5, 6]) # Compute the union of three arrays # Union of first two arrays union_temp = np.union1d(arr1, arr2) # Union with the third array union_result = np.union1d(union_temp, arr3) print("Union of multiple arrays (sequential):", union_result)
這將產生以下結果 -
Union of multiple arrays (sequential): [1 2 3 4 5 6]
示例:使用 np.concatenate() 和 np.unique() 函式
在此示例中,我們首先將所有陣列連線到一個數組中。然後,我們使用 unique() 函式從該連線陣列中提取唯一元素 -
import numpy as np # Define multiple 1D arrays arr1 = np.array([1, 2, 3]) arr2 = np.array([2, 3, 4]) arr3 = np.array([4, 5, 6]) # Concatenate all arrays into one concatenated_array = np.concatenate((arr1, arr2, arr3)) # Find unique elements union_result = np.unique(concatenated_array) print("Union of multiple arrays (concatenate and unique):", union_result)
以上程式碼的輸出如下 -
Union of multiple arrays (concatenate and unique): [1 2 3 4 5 6]
處理多維陣列
我們還可以對多維陣列應用並集運算。要對多維陣列執行並集運算,您需要先展平陣列。
展平將多維陣列轉換為 1D 陣列,允許您執行並集運算,就像陣列是一維的一樣。在執行並集運算後,如果需要,您可以將結果重新整形回原始維度。
在 NumPy 中,多維陣列是具有多個維度的陣列。它們通常被稱為“ndarrays”,用於表示複雜的資料結構,如矩陣或更高維度的張量。
管理這些陣列涉及理解它們的結構、執行操作以及有效地操作資料。
示例
在此示例中,我們首先定義兩個 2D 陣列“arr1”和“arr2”。然後,我們使用 flatten() 函式將其展平為 1d 陣列,然後計算它們的並集 -
import numpy as np # Define 2D arrays arr1 = np.array([[1, 2], [3, 4]]) arr2 = np.array([[3, 4], [5, 6]]) # Flatten the arrays and compute the union flattened_arr1 = arr1.flatten() flattened_arr2 = arr2.flatten() union_result = np.union1d(flattened_arr1, flattened_arr2) print("Union of 2D arrays:", union_result)
獲得的輸出如下所示 -
Union of 2D arrays: [1 2 3 4 5 6]
具有複雜資料型別的並集
NumPy 中具有複雜資料型別的並集運算涉及處理具有結構化或面向物件資料的陣列。與簡單的數字陣列不同,複雜的資料型別可以包含諸如整數、浮點數、字串,甚至其他陣列之類的欄位。
np.union1d() 函式可以處理任何資料型別的陣列,只要它們是可以比較的。
示例
在以下示例中,我們首先建立 2 個結構化陣列,然後使用 union1d() 函式將它們組合起來,刪除重複項並保留唯一條目 -
import numpy as np # Define structured arrays arr1 = np.array([(1, 'a'), (2, 'b')], dtype=[('num', 'i4'), ('letter', 'S1')]) arr2 = np.array([(2, 'b'), (3, 'c')], dtype=[('num', 'i4'), ('letter', 'S1')]) # Compute the union of structured arrays union_result = np.union1d(arr1, arr2) print("Union of structured arrays:", union_result)
執行上述程式碼後,我們得到以下輸出 -
Union of structured arrays: [(1, b'a') (2, b'b') (3, b'c')]