在 NumPy 陣列中查詢唯一行


在資料科學和機器學習中,經常需要查詢並刪除資料集中的重複行。為了解決這個問題,NumPy(一個流行的用於數值計算的 Python 工具包)提供了多種運算元組的方法。在本教程中,我們將學習如何使用 Python 在 NumPy 陣列中查詢唯一行。

安裝和設定

在 Python 中使用 NumPy 之前,首先需要使用 pip 安裝它。

pip install numpy

安裝完成後,我們可以使用以下語句在 Python 中匯入 NumPy 庫:

import numpy as np

語法

我們將使用 NumPy 函式 `np.unique()` 來查詢 NumPy 陣列中的唯一行。該函式的語法如下:

np.unique(arr, axis=0)

其中,`arr` 是我們想要查詢唯一行的 NumPy 陣列,`axis` 是執行唯一性測試的軸。預設情況下,`axis=0`,這意味著我們將沿著陣列的行執行唯一性測試。

程式碼演算法

  • 匯入所需的庫 - **Numpy**

  • 使用 `np.array()` 建立一個包含一些重複行的 NumPy 陣列。

  • 使用 `np.unique()` 函式查詢唯一行並將結果賦值給名為 `unique_rows` 的變數。

  • 最後,使用 `print()` 函式列印 `unique_rows` 陣列。

示例

import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [1, 2, 3]])
unique_rows = np.unique(arr, axis=0)
print(unique_rows)

輸出

[[1 2 3]
 [4 5 6]]

建立一個包含一些重複行的 NumPy 陣列 `arr`。我們使用 `np.unique()` 函式(`axis=0`)來查詢唯一行並將結果賦值給名為 `unique_rows` 的變數。最後,我們列印 `unique_rows` 陣列。

示例 2

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

unique_rows = np.unique(arr, axis=0)

print(unique_rows)

輸出

([[1, 2, 3],
   [4, 5, 6],
   [7, 8, 9]])

建立一個沒有重複行的 NumPy 陣列 `arr`。我們使用 `np.unique()` 函式(`axis=0`)來查詢唯一行並將結果賦值給名為 `unique_rows` 的變數。最後,我們列印 `unique_rows` 陣列。

假設我們有一個 NumPy 陣列表示一個包含一些重複行的資料集。我們想要查詢並刪除資料集中這些重複的行。資料集如下:

import numpy as np
dataset = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [1, 2, 3, 4], [9, 10, 11, 12], [5, 6, 7, 8]])
unique_rows = np.unique(dataset, axis=0)
print(unique_rows)

輸出

[[ 1  2  3  4]
 [ 5  6  7  8]
 [ 9 10 11 12]]

建立一個名為 `dataset` 的 NumPy 陣列,它表示一個包含一些重複行的資料集。我們使用 `np.unique()` 函式(`axis=0`)來查詢唯一行並將結果賦值給名為 `unique_rows` 的變數。最後,我們列印 `unique_rows` 陣列。輸出顯示該函式成功地從資料集中刪除了重複行。

應用

  • 由於資料科學和機器學習的固有複雜性,經常需要從資料集中刪除重複行以確保模型的正確性和防止過擬合。在 NumPy 陣列中查詢唯一行可能非常具有挑戰性。

  • 這通常透過使用 `np.unique()` 方法來組織資料來實現,這使得更容易從 NumPy 陣列中查詢和提取唯一行,以便您可以使用它們來建立一個沒有重複項的新資料集。

  • 需要注意的是,此方法可能不適用於具有更復雜結構的資料集,僅適用於 **一維** 和 **二維** 陣列,在處理更高階複雜資料集時,您應該考慮其他方法來解決這些挑戰。

結論

本文介紹了使用 Python 在 NumPy 陣列中查詢唯一行的方法。我們演示了 `np.unique()` 函式查詢並刪除資料集中的重複行。我們提供了一些示例來說明如何使用該函式。功能強大的 Python 包 NumPy 還提供了許多其他有用的陣列操作函式。

更新於:2023年8月21日

1K+ 瀏覽量

啟動你的 職業生涯

透過完成課程獲得認證

開始
廣告