📅  最后修改于: 2023-12-03 14:52:27.866000             🧑  作者: Mango
在使用 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()
函数可以轻松找到数组中的唯一值。然后我们可以使用这些唯一值进行数组操作。