如何用NumPy获得数组的唯一元素

  • Post category:Python

要获得数组的唯一元素,我们可以使用NumPy中提供的numpy.unique函数。该函数可以去除数组中的重复元素,并且可以按照指定的方式排序。

下面是使用numpy.unique函数获得唯一元素的步骤:

步骤一:导入NumPy库

首先,我们需要导入NumPy库。如果你尚未安装NumPy库,可以使用以下命令进行安装:

pip install numpy

在使用之前,我们需要先导入NumPy库:

import numpy as np

步骤二:创建数组

接下来,我们需要创建一个数组。在本示例中,我们可以使用NumPy的随机数生成函数numpy.random.rand()创建一个10个随机数的数组:

arr = np.random.rand(10)
print(arr)

输出:

[0.259 0.736 0.106 0.266 0.505 0.109 0.065 0.794 0.925 0.679]

步骤三:使用numpy.unique函数查找唯一元素

使用numpy.unique函数可以查找唯一元素。默认情况下,该函数返回唯一元素的已排序数组。我们可以使用以下命令获得唯一元素:

unique_arr = np.unique(arr)
print(unique_arr)

输出:

[0.065 0.106 0.109 0.259 0.266 0.505 0.679 0.736 0.794 0.925]

上述步骤中,我们首先通过numpy.random.rand()函数生成了一个大小为10的数组。随后使用numpy.unique函数生成了一个唯一元素的已排序数组。

numpy.unique函数还有一些可选参数可以使用,例如return_index可以返回唯一元素在原数组中第一次出现的索引位置,return_inverse可以返回一个由唯一元素构成的数组,并且该数组可以通过索引回溯到原数组中的元素。这些参数的详细用法可以参考NumPy官方文档。

下面是一个关于numpy.unique函数使用的示例:

arr = np.array([1, 2, 2, 3, 4, 4, 5])
unique_arr, indices = np.unique(arr, return_index=True)
print(unique_arr)
print(indices)

输出:

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

在本例中,我们创建了一个大小为7的数组,其中包含重复的元素。随后,我们使用numpy.unique函数获得了唯一元素的已排序数组,并且通过设置return_index参数可以返回唯一元素在原数组中第一次出现的索引位置。输出结果中,unique_arr数组为唯一元素数组,indices数组为唯一元素在原始数组中第一次出现的索引位置数组。