Python 之 numpy.unique函数的介绍以及使用

news2024/11/20 18:26:23

文章目录

  • 介绍
      • 语法:
      • 返回值:
      • 示例:
        • 补充[1]

在这里插入图片描述

介绍

np.unique 是 NumPy 库中的一个函数,用于从数组中获取唯一的值,并且可以返回这些唯一值的一些相关信息。以下是对 np.unique 函数的详细介绍:

语法:

unique_values = np.unique(arr, return_index=False, return_inverse=False, return_counts=False, axis=None)
  • arr:要从中提取唯一值的输入数组。
  • return_index:可选参数,如果设置为 True,则返回一个索引数组,其中包含唯一值在输入数组中的第一次出现的索引。默认为 False
  • return_inverse:可选参数,如果设置为 True,则返回一个整数数组,其中包含原始数组中的每个元素在唯一值数组中的索引。这可以用于将唯一值的数组还原回原始数组。默认为 False
  • return_counts:可选参数,如果设置为 True,则返回一个整数数组,其中包含每个唯一值在输入数组中出现的次数。默认为 False
  • axis:可选参数,用于指定在哪个轴上查找唯一值。如果未指定,则默认为 None,表示在整个数组中查找唯一值。

返回值:

np.unique 函数返回一个包含唯一值的 NumPy 数组。根据设置的参数,它可能还返回一个或多个附加的数组,如索引数组、逆向索引数组和出现次数数组。

示例:

import numpy as np

arr = np.array([3, 1, 2, 2, 3, 1, 4, 5, 5])

# 获取唯一值数组
unique_values = np.unique(arr)
# 输出: array([1, 2, 3, 4, 5])

# 获取唯一值的索引数组
unique_indices = np.unique(arr, return_index=True)[1]
# 输出: array([1, 2, 0, 6, 7], dtype=int64)

# 获取逆向索引数组,用于还原原始数组
inverse_indices = np.unique(arr, return_inverse=True)[1]
# 输出: array([2, 0, 1, 1, 2, 0, 3, 4, 4], dtype=int64)

# 获取唯一值的出现次数数组
value_counts = np.unique(arr, return_counts=True)[1]
# 输出: array([2, 2, 2, 1, 2], dtype=int64)

在上述示例中,np.unique 函数用于获取唯一值,并可以选择性地返回索引、逆向索引和出现次数,这些信息可以用于各种数据处理和分析任务中。

补充[1]

代码 value_counts = np.unique(arr, return_counts=True)[1] 的目的是计算一个数组 arr 中每个唯一值的出现次数,并将结果存储在名为 value_counts 的变量中。

让我解释这段代码的每个部分:

  1. np.unique(arr, return_counts=True):这部分调用了 NumPy 的 np.unique 函数,并传递了参数 return_counts=True。这意味着函数会返回一个包含唯一值的数组以及一个包含每个唯一值出现次数的数组。

  2. [1]:这部分是从函数返回的结果中提取出了第二个元素。在 Python 中,列表和数组的索引从0开始,所以 [1] 表示获取结果中的第二个元素,即包含出现次数的数组。

所以,最终结果 value_counts 是一个包含了数组 arr 中每个唯一值的出现次数的 NumPy 数组。例如,如果 arr[3, 1, 2, 2, 3, 1, 4, 5, 5],那么 value_counts 可能会是 [2, 2, 2, 1, 2],表示数字 1 出现了2次,数字 2 出现了2次,数字 3 出现了2次,数字 4 出现了1次,数字 5 出现了2次。这个信息对于统计和分析数据中的值的频率非常有用。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

A6120 Emerson 机箱地震振动监测器

A6120 Emerson 机箱地震振动监测器 艾默生过程管理公司宣布,PlantWeb数字工厂架构已经安装在化学工业CATCH(技术能力评估中心)培训中心,该中心位于北林肯郡格里姆斯比附近的Stallingborough。这座价值820万英镑的设施是为了满足行业对培训中心的需求而开…

leetcode 523. 连续的子数组和

感谢小虎哥的解答 bool checkSubarraySum(vector<int>& nums, int k) {unordered_map<int, int> map; // 创建哈希表&#xff0c;用于存储累积和取模 k 的结果和对应的下标map[0] -1; // 初始化哈希表&#xff0c;0 对应的下标为 -1&#xff0c;用于处理从…

周赛362(差分数组、脑经急转弯、全排列、矩阵快速幂优化DP)

文章目录 周赛362[2848. 与车相交的点](https://leetcode.cn/problems/points-that-intersect-with-cars/)差分数组 [2849. 判断能否在给定时间到达单元格](https://leetcode.cn/problems/determine-if-a-cell-is-reachable-at-a-given-time/)脑经急转弯 [2850. 将石头分散到网…

7米层高建筑模板施工方案

在高层建筑的施工中&#xff0c;7米层高是一个常见的高度要求。为了确保施工的高效性和安全性&#xff0c;制定一套合理的7米层高模板施工方案至关重要。本文将就7米层高模板施工方案进行探讨&#xff0c;包括模板选择、搭建流程和安全措施等方面。 首先&#xff0c;模板的选择…

产品经理需要熟悉的网站

产品经理需要熟悉的网站 一、SAAS平台的聚合二、saas产品教程三、原型参考教程四、在线文档协作五、云笔记六、脑图&流程图 一、SAAS平台的聚合 作用&#xff1a;面试和工作的需要&#xff0c;方便各行业产品查找竞品。 网址&#xff1a;https://www.zhaosaas.com/&#x…

运行java命令出现 Error: Invalid or corrupt jarfile XXX.jar

朋友 我当你一秒朋友 朋友 我当你一世朋友 奇怪 过去再不堪回首 怀缅 时时其实还有 运行java命令出现 Error: Invalid or corrupt jarfile XXX.jar 基本可以断定&#xff0c;是jar不完整导致的。不完整&#xff01;&#xff01;&#xff01;记住关键字 检查1&#xff1a; …

如何统计iOS产品不同渠道的下载量?

一、前言 在开发过程中&#xff0c;Android可能会打出来很多的包&#xff0c;用于标识不同的商店下载量。原来觉得苹果只有一个商店&#xff1a;AppStore&#xff0c;如何做出不同来源的统计呢&#xff1f;本篇文章就是告诉大家如何做不同渠道来源统计。 二、正文 先看一下苹…

注册法国商标的步骤和时间

注册法国商标的步骤如下&#xff1a; 1、商标查询&#xff1a;在提交申请之前&#xff0c;建议进行商标查询&#xff0c;以确保商标在法国市场上具有独特性和显著性。 2、提交申请&#xff1a;通过法国知识产权局的在线平台提交商标申请。申请时&#xff0c;需要提供以下文件…

C语言学习系列-->字符函数和字符串函数

文章目录 一、字符函数1、字符分类函数2、字符转换函数 二、字符串函数1、strlen概述模拟实现 2、strcpy概述模拟实现 3、strcat概述模拟实现 3、strcmp概述模拟实现 4、有限制的字符串函数strncpystrncatstrncmp 4、strstr概述模拟实现 一、字符函数 1、字符分类函数 包含头…

SQLite3 操作命令以及c/c++编程API和例子

文章目录 数据库系统SQLiteSQLite数据类型SQLite语句介绍表的创建和查看表的删除插入和修改表数据的删除复制表和修改表结构事务处理函数操作数据分组group by约束联结表视图view触发器trigger日志操作索引 index SQLite c/c编程sqlite3_opensqlite3_closesqlite3_execsqlite3_…

华为云云服务器云耀L实例评测 | 华为云耀L实例:中小企业的最佳选择?

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

地震反演基础知识2(代码演示)

文章目录 数据集代码演示1. SEG盐真实数据2. SEG盐速度模型3. SEG盐模拟地震数据4. SEG盐模拟速度模型5. openfwi地震数据6. openfwi速度模型 数据集代码演示 1. SEG盐真实数据 # 绘制SEG盐层数据的地震图像 def pain_seg_seismic_data(para_seismic_data):Plotting seismic …

第69步 时间序列建模实战:ARIMA建模(R)

基于WIN10的64位系统演示 一、写在前面 这一期&#xff0c;我们使用R进行SARIMA模型的构建。 同样&#xff0c;这里使用这个数据&#xff1a; 《PLoS One》2015年一篇题目为《Comparison of Two Hybrid Models for Forecasting the Incidence of Hemorrhagic Fever with Re…

Material Design的基本使用方法、Tollbar、菜单等

一、Toolbar 1、基本用法 <androidx.appcompat.widget.Toolbarandroid:id"id/toolbar"android:layout_width"match_parent"android:layout_height"?attr/actionBarSize"android:background"color/cardview_dark_background"andr…

Linux:keepalived 双热备份(基础备份web)

简介 Keepalived是一个用于Linux环境的路由软件&#xff0c;具有健康检查功能以及可用于实现高可用性(High Availability, HA)的功能。它主要支持两种协议&#xff1a;VRRP (Virtual Router Redundancy Protocol) 和 LVS (Linux Virtual Server)。Keepalived的项目源代码托管在…

一文读懂 QUIC 协议:更快、更稳、更高效的网络通信

作者 | 李龙彦 来源&#xff1a;infoQ 你是否也有这样的困扰&#xff1a;打开 APP 巨耗时、刷剧一直在缓冲、追热搜打不开页面、信号稍微差点就直接加载失败…… 如果有一个协议能让你的上网速度&#xff0c;在不需要任何修改的情况下就能提升 20%&#xff0c;特别是网络差的…

一篇文章讲清楚 Mendix 与 SAP 集成开发流程

一、引言 在今日瞬息万变的商业环境中&#xff0c;大量企业依赖SAP&#xff0c;这款全球领先的企业资源规划&#xff08;ERP&#xff09;系统&#xff0c;来优化其业务流程。想象一下&#xff0c;在一家大型制造公司&#xff0c;SAP系统负责从供应链管理到财务报告的一切重要业…

day44:C++ day4,拷贝赋值、友元、常成员、运算符重载

一、仿照string类&#xff0c;完成myString 类 mystring.h #ifndef MYSTRING_H #define MYSTRING_H#include <iostream> #include <cstring>using namespace std;class myString { private:char *str; //记录c风格的字符串int size; //记录字…

计算一串输出数字的累加和

计算一个文件内数字的累加和 awk {sum$1}END{print sum} 直接抽取数据以后的打印是这样的 cat step-iostat.1125.log |grep sda |cut -c "49-56" |awk {sum$1}END{print sum}

使用Arthas诊断线上问题的常见命令(热更新,监听耗时,方法出入参,jvm信息)

Arthas 启动&#xff08;windows&#xff09; jar包丢到项目任意目录&#xff0c;启动jar&#xff0c;选择java进程&#xff0c;项目上一般选择tomcat对应的pid java -jar arthas-boot.jar * [1]: 35542[2]: 71560 math-game.jar监听方法入参及返回 参数 返回对象 调用深度…