2024年06月07日 numpy unique详解 极客笔记
在数据处理和分析中,经常会遇到需要对数组中的重复元素进行去除的情况。而numpy.unique
这个函数就是用来帮助我们实现这个目的的。它能够返回输入数组中的唯一元素,并且能够根据我们的需求对结果进行排序。
numpy.unique(ar, return_index=False, return_inverse=False, return_counts=False, axis=None)
ar
:输入的数组return_index
:如果为True,则返回唯一数组中元素的索引位置return_inverse
:如果为True,则返回输入数组中重复元素的索引位置return_counts
:如果为True,则返回唯一数组中元素的出现次数axis
:指定沿着哪一个轴进行操作接下来我们通过一些实例来演示numpy.unique
函数的用法。
首先我们来看一个简单的示例,对一个一维数组进行去重操作:
import numpy as np
arr = np.array([1, 2, 3, 1, 2, 4, 5])
unique_arr = np.unique(arr)
print(unique_arr)
输出为:
[1 2 3 4 5]
我们可以通过设置return_index=True
参数来获得唯一元素在原数组中的索引位置:
unique_arr, unique_indices = np.unique(arr, return_index=True)
print(unique_arr)
print(unique_indices)
输出为:
[1 2 3 4 5]
[0 1 2 5 6]
如果我们希望获取原数组中重复元素的索引位置,可以设置return_inverse=True
参数:
unique_arr, inverse_indices = np.unique(arr, return_inverse=True)
print(unique_arr)
print(inverse_indices)
输出为:
[1 2 3 4 5]
[0 1 2 0 1 3 4]
如果我们想知道唯一元素在原数组中出现的次数,可以设置return_counts=True
参数:
unique_arr, counts = np.unique(arr, return_counts=True)
print(unique_arr)
print(counts)
输出为:
[1 2 3 4 5]
[2 2 1 1 1]
除了对一维数组的处理,numpy.unique
函数还可以用于处理多维数组,并且可以指定沿着哪个轴进行操作。
我们可以看一个对二维数组进行去重的示例:
arr = np.array([[1, 2, 3], [1, 2, 4], [1, 3, 5], [1, 2, 3]])
unique_arr = np.unique(arr, axis=0)
print(unique_arr)
输出为:
[[1 2 3]
[1 2 4]
[1 3 5]]
如果我们想获得唯一元素在原数组中的索引位置,可以指定沿着某个轴返回索引位置:
unique_arr, unique_indices = np.unique(arr, axis=0, return_index=True)
print(unique_arr)
print(unique_indices)
输出为:
[[1 2 3]
[1 2 4]
[1 3 5]]
[0 1 2]
通过以上的介绍和实例,我们可以看到numpy.unique
函数非常实用且灵活,能够快速帮助我们对数组中的重复元素进行去除。同时,它还支持一些高级的功能,比如返回索引位置、重复元素的索引以及元素的出现次数,可以满足我们在不同情境下的需求。
本文链接:http://so.lmcjl.com/news/6100/