📜  如何在 numpy 数组中查找唯一值 - Python (1)

📅  最后修改于: 2023-12-03 14:52:27.866000             🧑  作者: Mango

如何在 numpy 数组中查找唯一值 - Python

在使用 numpy 进行科学计算时,我们经常需要在数组中查找唯一值。这篇文章将介绍如何使用 numpy 找到唯一值,以及如何使用它们来进行数组操作。

确定唯一值

我们可以使用 numpy.unique() 函数来确定一个数组中的所有唯一值。该函数返回一个排好序的数组,其中每个值只出现一次。

import numpy as np

arr = np.array([1, 2, 2, 3, 3, 3, 4, 4, 5])
unique_values = np.unique(arr)
print(unique_values)

输出:

[1 2 3 4 5]
确定唯一值的位置

我们可以使用 numpy.where() 函数来确定数组中某个值的位置。为了确定唯一值的位置,我们可以使用一系列 numpy.where() 函数,并将其结果传递给 numpy.unique() 函数。

import numpy as np

arr = np.array([1, 2, 2, 3, 3, 3, 4, 4, 5])
unique_values, unique_indices = np.unique(arr, return_index=True)
print(unique_values)      # [1 2 3 4 5]
print(unique_indices)     # [0 1 3 6 7]

在这个例子中,unique_values 是唯一值组成的数组,而 unique_indices 是这些唯一值在原来数组中的位置。

确定唯一值的数量

我们可以使用 numpy.unique() 函数来确定一个数组中的唯一值总数。

import numpy as np

arr = np.array([1, 2, 2, 3, 3, 3, 4, 4, 5])
unique_values = np.unique(arr)
unique_values_count = len(unique_values)
print(unique_values_count)    # 5
确定唯一值的出现次数

我们可以使用 numpy.unique() 函数来确定数组中每个唯一值的出现次数。

import numpy as np

arr = np.array([1, 2, 2, 3, 3, 3, 4, 4, 5])
unique_values, unique_indices, unique_counts = np.unique(arr, return_index=True, return_counts=True)
print(unique_values)      # [1 2 3 4 5]
print(unique_counts)      # [1 2 3 2 1]

在这个例子中,unique_counts 是一个数组,其中包括每个唯一值在原来数组中出现的次数。

确定唯一值的下标

我们可以使用 numpy.argwhere() 函数来确定一个数组中所有给定值的下标。

import numpy as np

arr = np.array([1, 2, 2, 3, 3, 3, 4, 4, 5])
unique_values = np.unique(arr)
unique_indices = np.argwhere(np.isin(arr, unique_values))
print(unique_indices)

在这个例子中,unique_indices 是一个数组,其中包括每个唯一值在原来数组中的下标。

将唯一值应用于数组操作

使用唯一值,我们可以进行各种数组操作,例如去重,排序,选择等。

例如,我们可以使用 numpy.sort() 函数对数组进行排序,然后使用 numpy.unique() 函数去除重复值。

import numpy as np

arr = np.array([1, 2, 2, 3, 3, 3, 4, 4, 5])
sorted_arr = np.sort(arr)
unique_sorted_arr = np.unique(sorted_arr)
print(unique_sorted_arr)

在这个例子中,我们首先对数组进行了排序,然后使用 numpy.unique() 函数去掉了重复值。

结论

在 numpy 中,使用 numpy.unique() 函数可以轻松找到数组中的唯一值。然后我们可以使用这些唯一值进行数组操作。