【Python】np.unique() 介绍与使用

简述

numpy.unique:用于去除数组中重复元素,并从小到大排序(找到唯一元素并排序)。

def unique(ar, return_index=False, return_inverse=False,return_counts=False, axis=None):
ar: 这是输入的数组或类数组对象。return_index: 如果设置为True,函数会同时返回唯一元素的索引数组,这些索引对应于原始数组中的位置。return_inverse: 如果设置为True,函数会返回一个数组,其中包含输入数组中的元素在处理后的唯一数组中的索引。这可以用于重构原始数组。return_counts: 如果设置为True,函数将返回一个数组,其中包含输入数组中每个唯一元素的出现次数。axis: 用于指定在哪个轴上执行操作。如果是None,则表示在整个数组上执行操作。

函数返回一个包含唯一元素的排序数组。根据参数的设置,它可能还返回与唯一元素相关联的索引数组、原始数组元素在唯一数组中的索引数组,以及每个唯一元素的出现次数。

以下是一个简单的例子:

import numpy as nparr = np.array([2, 1, 6, 6, 4, 8, 5, 5, 6,7])unique_values = np.unique(arr)
print("Unique values:", unique_values)# 返回唯一元素的索引数组
unique_indices = np.unique(arr, return_index=True)[1]
print("Indices of unique values:", unique_indices)# 返回输入数组中的元素在唯一数组中的索引数组
inverse_indices = np.unique(arr, return_inverse=True)[1]
print("Inverse indices:", inverse_indices)# 返回每个唯一元素的出现次数
unique_counts = np.unique(arr, return_counts=True)[1]
print("Counts of unique values:", unique_counts)# 以上如果索引是[0],则返回的是处理过后的数组print("unique values:", np.unique(arr, return_index=True)[0])
print("unique values:", np.unique(arr, return_inverse=True)[0])
print("unique values:", np.unique(arr, return_counts=True)[0])

输出
在这里插入图片描述

最后参数axis的含义

在 numpy.unique 函数中,axis 参数用于指定在哪个轴上执行操作,但在默认情况下,该参数通常是 None,表示在整个数组上执行操作。在很多情况下,我们不需要设置 axis 参数,因为默认值已经能够满足大多数需求。
如果你的输入数组是多维的,而且你想在特定轴上找到唯一元素,那么你可以指定 axis 参数。

arr_2d = np.array([[1, 2, 3,2],[4, 2, 6,5],[1, 2, 3,1],[1, 2, 3,1]])# 在轴 0 上找到唯一元素
unique_values_axis_0 = np.unique(arr_2d, axis=0,return_index=True)[1]
print("Unique values along axis 0:\n", unique_values_axis_0)# 在轴 1 上找到唯一元素
unique_values_axis_1 = np.unique(arr_2d, axis=1,return_index=True)[1]
print("Unique values along axis 1:\n", unique_values_axis_1)

输出
在这里插入图片描述
也就是如果选定axis=0,就是从第一个维度arr_2d[i] 中挑选其中最小值,并排序,最小值的排序方式是遍历 arr_2d[i]的每个值,先排第一个数字,再排第二个数字,以此类推。

选定axis=1,就是在第一个维度的第一个向量找到第二维的排序方式,也就是按照arr_2d[0][i]排序,得到的索引,用于其他的维度 arr_2d[i]。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/212111.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

红队攻防实战之内网穿透隐秘隧道搭建

别低头,皇冠会掉;别流泪,贱人会笑。 本文首发于先知社区,原创作者即是本人 0x00 前言 构建内网隐蔽通道,从而突破各种安全策略限制,实现对目标服务器的完美控制。 当我们从外网成功获得攻击点的时候&…

YOLO目标检测——泄露检测数据集下载分享【含对应voc、coco和yolo三种格式标签】

实际项目应用:泄露检测数据集说明:泄露检测数据集,真实场景的高质量图片数据,数据场景丰富,含多个类别标签说明:使用lableimg标注软件标注,标注框质量高,含voc(xml)、coco(json)和yo…

【double check 读写锁】

使用double check 读写锁 读多写少场景 记录下 //来源 jdbc 中的查询连接信息 //public abstract class ConnectionUrl implements DatabaseUrlContainer public static ConnectionUrl getConnectionUrlInstance(String connString, Properties info) {if (connString null…

c++|类和对象(上)

目录 一、面向过程和面向对象初步认识 二、类的引入和定义 2.1类的引入 2.2类的定义 三、类的访问限定符及封装 3.1访问限定符 3.2封装 四、类的作用域 五、类的实例化 六、类的对象大小的计算 6.1如何计算对象的大小 6.2类对象的存储方式 七、类成员函数的thi…

Leetcode 205. 同构字符串

文章目录 题目代码(11.23 手刷看解析) 题目 Leetcode 205. 同构字符串 代码(11.23 手刷看解析) 知识点 数组的长度是.length,是一个属性,其他数据类型是函数方法,要用.length()String的方法&…

C++初阶 | [五] 内存管理

摘要:new and delete,定位new,(C内存管理的方式),malloc/free和new/delete的区别,内存泄漏 关于内存: 栈又叫堆栈——非静态局部变量/函数参数/返回值等等,栈是向下增长…

excel单元格加背景颜色不生效?

如果在 Excel 中设置单元格背景颜色而发现不生效,可能有几个原因。以下是一些常见的解决方法: 1. **单元格锁定:** 检查所在单元格是否被锁定。如果单元格被锁定,并且工作表被保护,你可能无法更改其背景颜色。在工作表…

批量插入SQL 错误 [933] [42000]: ORA-00933: SQL 命令未正确结束

使用DBeaver向【oracle数据库】插入大量数据 INSERT INTO Student(name,sex,age,address,birthday) VALUES(Nike,男,18,北京,2000-01-01) ,(Nike,男,18,北京,2000-01-01) ,(Nike,女,18,北京,2000-01-01) ,(Nike,女,18,北京,2000-01-01) ,(Nike,男,18,北京,2000-01-01) ,(Nike…

【算法】缓存淘汰算法

目录 1.概述2.代码实现2.1.FIFO2.2.LRU2.3.LFU2.4.Clock2.5.Random 3.应用 1.概述 缓存淘汰策略是指在缓存容量有限的情况下,当缓存空间不足时决定哪些缓存项应当被移除的策略。缓存淘汰策略的目标是尽可能地保持缓存命中率高,同时合理地利用有限的缓存…

筑牢思想防线——建行驻江门市分行纪检组举办2023年清廉合规大讲堂

为推动廉洁教育打通“最后一公里”,近日,建行驻江门市分行纪检组举办江门市分行2023年清廉合规大讲堂。 本次大讲堂检察官结合一线办案经历,从防范化解金融风险、预防金融从业人员犯罪等方面对全辖员工进行了深入浅出地的讲解,引导…

GitHub桌面版

GitHub桌面版 一、GitHub 桌面版二、clone 仓库三、更新仓库 一、GitHub 桌面版 二、clone 仓库 三、更新仓库

WordPress网站如何修复数千个帖子的SEO错误

在本教程中,我们将向您展示如何解决您经常犯的SEO错误。 最好的是您不必花费太多时间,因为您不需要打开并编辑每个帖子。 相反,我们将向您展示如何使用 WordPress 内的电子表格来修复 WordPress 帖子的 SEO。 在这里,我们为您提…