详解Numpy unique()函数/np.unique函数(返回数组中的唯一元素)函数的作用与使用方法(图文详解1)
详细介绍 NumPy 中的 unique()
函数及其使用方法。
unique()
函数是 NumPy 中非常有用的函数之一,它可以用来找到数组中的唯一元素,并返回这些唯一元素。下面我将为您详细讲解这个函数的作用、原理以及使用方法:
- 函数作用:
unique()
函数用于返回输入数组中的唯一元素,并按元素从小到大的顺序排列。- 它可以用于一维数组、二维数组甚至高维数组。
- 除了返回唯一元素外,它还可以返回唯一元素的索引,以及唯一元素在原数组中出现的次数。
- 函数原理:
unique()
函数内部使用了哈希表的数据结构来实现快速查找和去重。- 首先遍历输入数组,将每个元素存入哈希表,由于哈希表不允许重复元素,因此自动去重。
- 然后按照哈希表中元素的顺序返回唯一元素。
- 同时还可以返回唯一元素在原数组中的索引,以及唯一元素出现的频次。
- 使用方法:
np.unique(arr, return_index=False, return_inverse=False, return_counts=False, axis=None)
arr
: 输入数组return_index
: 是否返回唯一元素在原数组中的索引return_inverse
: 是否返回每个元素在唯一元素列表中的索引return_counts
: 是否返回每个唯一元素在原数组中出现的次数axis
: 指定沿着哪个轴进行唯一化操作
- 示例代码:
import numpy as np
# 1. 一维数组去重
arr1 = np.array([1, 2, 2, 3, 4, 4, 5])
unique_values = np.unique(arr1)
print(unique_values) # 输出: [1 2 3 4 5]
# 2. 返回唯一元素的索引
unique_values, indices = np.unique(arr1, return_index=True)
print(unique_values) # 输出: [1 2 3 4 5]
print(indices) # 输出: [0 1 3 4 6]
# 3. 返回每个元素在唯一元素列表中的索引
unique_values, inverse_indices = np.unique(arr1, return_inverse=True)
print(inverse_indices) # 输出: [0 1 1 2 3 3 4]
# 4. 返回每个唯一元素在原数组中出现的次数
unique_values, counts = np.unique(arr1, return_counts=True)
print(unique_values) # 输出: [1 2 3 4 5]
print(counts) # 输出: [1 2 1 2 1]
# 5. 二维数组去重
arr2 = np.array([[1, 2], [2, 3], [1, 2]])
unique_rows = np.unique(arr2, axis=0)
print(unique_rows)
# 输出:
# [[1 2]
# [2 3]]
通过上述代码示例,您可以看到 unique()
函数的强大功能,它可以帮助您快速地对数组进行去重,并返回丰富的信息。这个函数在数据预处理、特征工程等场景下都非常有用。希望这个详细介绍对您有帮助,如果还有任何问题欢迎随时问我。