一、 numpy.unique的概述
numpy.unique() 函数是用于返回输入数组中的唯一元素,在返回的数组元素也是唯一的。
该函数能够返回一个元组,包含了输入数组中的唯一元素和其对应的索引位置。
numpy.unique(arr, return_index, return_inverse, return_counts)
- arr:输入数组,如果不是一维数组则会展开
- return_index:如果为true,则返回输入数组中的元素下标
- return_inverse:如果为true,则返回去重数组的下标
- return_counts:如果为true,则返回去重数组中的元素在原数组中的出现次数
二、 numpy.unique的使用
下面的代码演示了numpy.unique()函数的使用:
import numpy as np arr = np.array([1, 2, 2, 3, 3, 4, 4, 5]) print(np.unique(arr))
输出结果如下:
[1 2 3 4 5]
三、 numpy.unique的参数
1. return_index参数
return_index参数是一个可选参数,默认为False。如果该参数为True,则函数会返回一个元组,包含去重后的数组元素和其在原数组中的对应下标。
下面的代码演示了该参数的使用:
import numpy as np arr = np.array([1, 2, 2, 3, 3, 4, 4, 5]) unique_arr, unique_index = np.unique(arr, return_index=True) print(unique_arr) print(unique_index)
输出结果如下:
[1 2 3 4 5]
[0 1 3 5 6 7]
2. return_inverse参数
return_inverse参数是一个可选参数,默认为False。如果该参数为True,则函数会返回一个元组,包含去重后的数组元素和一个整数数组,每个元素表示它在去重后的数组元素中的下标位置。
下面的代码演示了该参数的使用:
import numpy as np arr = np.array([1, 2, 2, 3, 3, 4, 4, 5]) unique_arr, unique_inverse = np.unique(arr, return_inverse=True) print(unique_arr) print(unique_inverse)
输出结果如下:
[1 2 3 4 5]
[0 1 1 2 2 3 3 4]
3. return_counts参数
return_counts参数是一个可选参数,默认为False。如果该参数为True,则函数会返回一个元组,包含去重后的数组元素和一个整数数组,每个元素表示它在原数组中出现的次数。
下面的代码演示了该参数的使用:
import numpy as np arr = np.array([1, 2, 2, 3, 3, 4, 4, 5]) unique_arr, unique_counts = np.unique(arr, return_counts=True) print(unique_arr) print(unique_counts)
输出结果如下:
[1 2 3 4 5]
[1 2 2 2 1]
四、 numpy.unique和pandas中的处理方式
numpy和pandas是数据科学中最重要的两个库。一般来说,pandas更擅长于数据处理,而numpy则更擅长于矩阵和数值处理。
在pandas中,有一个去重函数drop_duplicates()可以用于去除重复元素。这两个函数的异同点如下:
1. numpy.unique和pandas.drop_duplicates函数的相同点
- 都可以用于去重。
- 都可以自定义处理方式。
2. numpy.unique和pandas.drop_duplicates函数的不同点
- numpy.unique返回的是numpy数组对象,而pandas.drop_duplicates返回的是一个pandas数据框。
- pandas.drop_duplicates函数可以处理多列去重。
下面的代码演示了numpy和pandas中去重函数的使用方法:
import numpy as np import pandas as pd # numpy去重 arr = np.array([1, 2, 2, 3, 3, 4, 4, 5]) unique_arr = np.unique(arr) print(unique_arr) # pandas去重 df = pd.DataFrame({'col1': [1, 2, 2, 3, 3, 4, 4, 5], 'col2': [1, 2, 3, 4, 5, 6, 7, 8]}) unique_df = df.drop_duplicates() print(unique_df)
五、 numpy.unique的使用场景
numpy.unique()函数是数据处理中经常用到的函数之一,它可以用于以下场景:
- 去重:根据场景需要在数组中去除重复元素。
- 统计:统计数组中每个元素出现的次数。
- 数据匹配:根据一列的唯一值生成一个映射。
总而言之,numpy.unique()函数在数据处理中有着广泛的应用,掌握该函数能够帮助我们方便快捷地处理数据。