np.eye()函数

2023-11-07

np.eye()的函数,除了生成对角阵外,还可以将一个label数组,大小为(1,m)或者(m,1)的数组,转化成one-hot数组。

例如它可以将类别总数为6的labels=[1,2,3,0,1,1]的数组转化成数组[[0,1,0,0,0,0],[0,0,1,0,0,0],[0,0,0,1,0,0],[0,0,0,0,0,0],[0,1,0,0,0,0],[0,1,0,0,0,0]]这就是所谓的one-hot的形式。

一、np.eye()
函数的原型:numpy.eye(N,M=None,k=0,dtype=<class 'float'>,order='C)

返回的是一个二维2的数组(N,M),对角线的地方为1,其余的地方为0.

参数介绍:

(1)N:int型,表示的是输出的行数

(2)M:int型,可选项,输出的列数,如果没有就默认为N

(3)k:int型,可选项,对角线的下标,默认为0表示的是主对角线,负数表示的是低对角,正数表示的是高对角。

(4)dtype:数据的类型,可选项,返回的数据的数据类型

(5)order:{‘C’,‘F'},可选项,也就是输出的数组的形式是按照C语言的行优先’C',还是按照Fortran形式的列优先‘F'存储在内存中

案例:(普通的用法)

import numpy as np
 
a=np.eye(3)
print(a)
 
a=np.eye(4,k=1)
print(a)
 
[[1. 0. 0.]
 [0. 1. 0.]
 [0. 0. 1.]]
[[0. 1. 0. 0.]
 [0. 0. 1. 0.]
 [0. 0. 0. 1.]
 [0. 0. 0. 0.]]
案例:(深度学习中的高级用法,将数组转成one-hot形式)

import numpy as np
 
labels=np.array([[1],[2],[0],[1]])
print("labels的大小:",labels.shape,"\n")
 
#因为我们的类别是从0-2,所以这里是3个类
a=np.eye(3)[1]
print("如果对应的类别号是1,那么转成one-hot的形式",a,"\n")
 
a=np.eye(3)[2]
print("如果对应的类别号是2,那么转成one-hot的形式",a,"\n")
 
a=np.eye(3)[1,0]
print("1转成one-hot的数组的第一个数字是:",a,"\n")
 
#这里和上面的结果的区别,注意!!!
a=np.eye(3)[[1,2,0,1]]
print("如果对应的类别号是1,2,0,1,那么转成one-hot的形式\n",a)
 
res=np.eye(3)[labels.reshape(-1)]
print("labels转成one-hot形式的结果:\n",res,"\n")
print("labels转化成one-hot后的大小:",res.shape)
结果:

labels的大小: (4, 1) 
 
如果对应的类别号是1,那么转成one-hot的形式 [0. 1. 0.] 
 
如果对应的类别号是2,那么转成one-hot的形式 [0. 0. 1.] 
 
1转成one-hot的数组的第一个数字是: 0.0 
 
如果对应的类别号是1,2,0,1,那么转成one-hot的形式
 [[0. 1. 0.]
 [0. 0. 1.]
 [1. 0. 0.]
 [0. 1. 0.]]
labels转成one-hot形式的结果:
 [[0. 1. 0.]
 [0. 0. 1.]
 [1. 0. 0.]
 [0. 1. 0.]] 
 
labels转化成one-hot后的大小: (4, 3)
          
二、np.identity()
这个函数和之前的区别在于,这个只能创建方阵,也就是N=M

函数的原型:np.identity(n,dtype=None)

参数:n,int型表示的是输出的矩阵的行数和列数都是n

dtype:表示的是输出的类型,默认是float

返回的是nxn的主对角线为1,其余地方为0的数组

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

np.eye()函数 的相关文章

  • txt数据转换成json数据保存

    txt数据 小王 19 小李 20 小陈 21 js代码 初始化 const fs require fs const path require path 读取txt文档的数据 fs readFile path join dirname a
  • QDir::currentPath() 和 QApplication::applicationDirPath() 区别和用法

    1 QDir currentPath 的使用 我的理解 若在vs2010平台下 该函数返回的是 工作目录 属性 调试 工作目录 可自定义 Qt5 8 原文 Returns the absolute path of the applicati
  • 【数据结构】记录

    栈 堆 树 前序遍历 中序遍历 二叉树 搜索二叉树 二叉查找树 二叉查找树 BST Binary Search Tree 是一种特殊的二叉树 它改善了二叉树节点查找的效率 二叉查找树有以下性质 对于任意一个节点 n 其左子树 left su
  • Mac 配置selenium连接chrome

    输入chrome version 查看chrome版本 如图为87 0 4280 88 到网址http chromedriver storage googleapis com index html 上下载适合自己的版本 我需要下载的是87
  • Python Selenium库的使用

    一 Selenium基础 入门教程 Selenium官网教程 1 Selenium简介 Selenium是一个用于测试网站的自动化测试工具 支持各种浏览器包括Chrome Firefox Safari等主流界面浏览器 同时也支持phanto
  • Qt TCP 网络通信01

    概念 windows 和 Linux 套接字相似 局域网和广域网 局域网 将一定区域内各种计算机 外部通信设备和数据库连接起来形成计算机通信的私有网络 广域网 又称广域网 外网 公网 是连接不同地区局域网或城域网的远程公共网络 TCP UD
  • FPAG的上电配置的3种方法

    目前 大多数FPGA芯片是基于SRAM 的结构的 而 SRAM 单元中的数据掉电就会丢失 因此系统上电后 必须要由配置电路将正确的配置数据加载到 SRAM 中 此后 FPGA 才能够正常的运行 常见的配置芯片有EPCS 芯片 EPCS4 E
  • 【图解HTTP】(二)IP、TCP和DNS

    图解HTTP 二 IP TCP和DNS 一 负责传输的IP协议 二 确保可靠性的TCP协议 三 负责域名解析的DNS服务器 四 IP TCP和DNS三者与HTTP的关系 一 负责传输的IP协议 IP协议 即Internet Protocol
  • net6授权认证源码详解(三)

    授权 接下来跟着源码来一起学习授权相关知识 一般的service注入服务方式有如下 builder Services AddAuthorization option gt 增加授权策略 option AddPolicy Api1 build
  • 【spring】ApplicationContext详解

    ApplicationContext到底是什么 父类HierarchicalBeanFactory 拥有获取父BeanFactory的功能 父类ListableBeanFactory 拥有获取beanNames的功能 父类ResourceP
  • Redis离线安装

    Redis离线安装 目标 离线安装redis 设置redis访问权限 配置redis密码 离线安装redis 下载redis 地址 https redis io download redis downloads 下载完成后将redis拷贝到
  • 大数据项目实训总结_大数据分析必备知识点总结

    今天给大家分享一篇关于大数据分析必备知识点总结 下面我们一起来看一下吧 1 数据 信息和知识是广义数据表现的不同形式 2 主要知识模式类型有 广义知识 关联知识 类知识 预测型知识 特异型知识3 web挖掘研究的主要流派有 Web结构挖掘
  • 绝杀 GETPOST 嵌套的 JSON 参数

    JSON JavaScript Object Notation 是一种轻量级的数据交换格式 常用于Web应用程序中的数据传输 在HTTP数据包信息传递时 JSON扮演着非常正常的角色 因为它是一种通用的数据格式 可以被多种编程语言和应用程序
  • Python笔记_列表

    Python笔记 列表 列表的常用操作 任意定义两个列表 list one 1 2 3 14 python list two 1 10 55 20 6 计算序列的长度 print len list one 返回序列最小元素 注意 不同的类型
  • 液晶屏的接口信号RGB_TTL、LVDS、MIPI

    RGB TTL信号是TFT LCD能识别的标准信号 就算是以后用到的LVDS TMDS 都是在它的基础上编码得来的 RGB TTL信号可分为数据信号RGB 行同步信号HS 场同步信号VS 时钟信号CLK 使能信号DE 其中R G G三基色中
  • C# 线程暂停和恢复

    文章目录 前言 一 暂停与恢复 二 功能实现 1 按钮事件 播放和停止 2 线程和ManualResetEvent 总结 前言 因为需要一个自动播放和暂停图片的功能 所以就非常自然想到了创建一个线程 用点击事件控制线程的暂停和启动 一 暂停
  • [Windows驱动开发](四)内存管理

    一 内存管理概念 1 物理内存概念 Physical Memory Address PC上有三条总线 分别是数据总线 地址总线和控制总线 32位CPU的寻址能力为4GB 2的32次方 个字节 用户最多可以使用4GB的真实物理内存 PC中很多
  • PyTorch简介

    PyTorch是一个针对深度学习 并且使用GPU和CPU来优化的tensor library 张量库 最新发布的稳定版本为1 9 源码在https github com pytorch pytorch 它支持在Linux Mac和Windo
  • kafka启动失败,报错java.lang.NoSuchMethodError

    ERROR KafkaServer id 1 Fatal error during KafkaServer startup Prepare to shutdown kafka server KafkaServer java lang NoS
  • Java迭代器和Collection接口

    各位小伙伴们大家好 欢迎来到这个小扎扎的 Java核心技术 卷 笔记专栏 在这个系列专栏中我将记录浅学这本书所得收获 鉴于 看到就是学到 学到就是赚到 精神 这波简直就是血赚 涉及的知识点速通 关于迭代器你都知道什么 什么是迭代器 迭代器的

随机推荐