numpy.unique详解

2024年06月07日 numpy unique详解 极客笔记

numpy.unique详解

1. 介绍

在数据处理和分析中,经常会遇到需要对数组中的重复元素进行去除的情况。而numpy.unique这个函数就是用来帮助我们实现这个目的的。它能够返回输入数组中的唯一元素,并且能够根据我们的需求对结果进行排序。

2. 语法

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:指定沿着哪一个轴进行操作

3. 实例

接下来我们通过一些实例来演示numpy.unique函数的用法。

3.1 基本使用

首先我们来看一个简单的示例,对一个一维数组进行去重操作:

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]

3.2 返回索引位置

我们可以通过设置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]

3.3 返回重复元素的索引

如果我们希望获取原数组中重复元素的索引位置,可以设置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]

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]

4. 高级应用

除了对一维数组的处理,numpy.unique函数还可以用于处理多维数组,并且可以指定沿着哪个轴进行操作。

4.1 对二维数组进行去重

我们可以看一个对二维数组进行去重的示例:

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]]

4.2 沿着指定轴返回索引位置

如果我们想获得唯一元素在原数组中的索引位置,可以指定沿着某个轴返回索引位置:

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]

5. 总结

通过以上的介绍和实例,我们可以看到numpy.unique函数非常实用且灵活,能够快速帮助我们对数组中的重复元素进行去除。同时,它还支持一些高级的功能,比如返回索引位置、重复元素的索引以及元素的出现次数,可以满足我们在不同情境下的需求。

本文链接:http://so.lmcjl.com/news/6100/

展开阅读全文