在 NumPy 数组中查找唯一行

numpyserver side programmingprogramming

在数据科学和机器学习中,必须经常查找并删除数据集中的重复行,为了解决这个问题,一个广受欢迎的 Python 数值计算工具包 NumPy 提供了多种操作数组的方法。在本教程中,我们将介绍如何使用 Python 查找 NumPy 数组中的唯一行。

安装和设置

必须先使用 pip 安装 NumPy,然后才能在 Python 中使用。

pip install numpy

安装后,我们可以使用以下语句在 Python 中导入 NumPy 库 -

import numpy as np

语法

我们将用于在 NumPy 数组中查找唯一行的 NumPy 函数是 np.unique()。此函数的语法如下 -

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。我们使用 axis=0 的 np.unique() 函数来查找唯一行,并将结果分配给名为 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。我们使用 axis=0 的 np.unique() 函数来查找唯一行,并将结果分配给名为 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]]

创建一个 NumPy 数组 数据集,表示具有一些重复行的数据集。我们使用 np.unique() 函数和 axis=0 来查找唯一行,并将结果分配给名为 unique_rows 的变量。最后,我们打印 unique_rows 数组。输出显示该函数已成功从数据集中删除重复行。

应用

  • 由于数据科学和机器学习固有的复杂性,经常需要从数据集中删除重复行以确保模型正确性并防止过度拟合。在 NumPy 数组中查找唯一行可能极具挑战性。

  • 这通常通过使用 np.unique() 方法设置数据来实现,这使得查找和集中 NumPy 群集中的异常行变得更加容易,因此您可以使用它们来创建一个没有副本的全新数据集。

  • 需要紧急记住的是,此方法可能不适用于具有额外复杂地理位置的数据集,并且仅适用于 1D2D 群集,您应该在这些情况下考虑不同的方法来解决更高要求的复杂数据集所带来的困难

结论

本文介绍了使用 Python 在 NumPy 数组中查找唯一行的主题。 np.unique() 方法定位和消除数据集中重复行的能力已得到证明。为了说明如何使用该函数,我们给出了几个示例。强大的 Python 包 NumPy 还提供了几个用于操作数组的附加实用函数。


相关文章