方法1

之前写使用sklearn进行数据挖掘-房价预测(4)—数据预处理一文中处理标签类特征时候已经提到过,使用sklearn中提供的LabelEncoderOneHotEncoder方法

a = ['A','B','A','C']
from sklearn.preprocessing import OneHotEncoder,LabelEncoder
label_value = label_encoder.fit_transform(a)
>>label_encoder.classes_
array(['A', 'B', 'C'], dtype='<U1')
>>label_value
array([0, 1, 0, 2], dtype=int64)
encoder = OneHotEncoder()
>>one_hot.toarray()
[[ 1. 0. 0.]
[ 0. 1. 0.]
[ 1. 0. 0.]
[ 0. 0. 1.]]

方法2

sklearn提供的简单方法,上面两步可以合并为一步

from sklearn.preprocessing import LabelBinarizer
encoder = LabelBinarizer()
one_hot = encoder.fit_transform(a)
>>one_hot
array([[1, 0, 0],
[0, 1, 0],
[1, 0, 0],
[0, 0, 1]])

方法3

这次需要隆重介绍的是这个方法,在TensorFlow代码中看到一个转为one-hot的实现,方法比较的独特,里面一些numpy方法自己之前也没有接触过,就摘抄下来,反复背诵并默写 =。=

def dense_to_one_hot(labels_dense, num_classes):
"""Convert class labels from scalars to one-hot vectors."""
num_labels = labels_dense.shape[0]
index_offset = np.arange(num_labels) * num_classes
labels_one_hot = np.zeros((num_labels, num_classes))
labels_one_hot.flat[index_offset + labels_dense.ravel()] = 1
return labels_one_hot

几种实现one-hot编码的方式的更多相关文章

  1. (转)四种常见的 POST 提交数据方式

    四种常见的 POST 提交数据方式(转自:https://imququ.com/post/four-ways-to-post-data-in-http.html) HTTP/1.1 协议规定的 HTT ...

  2. Base64的编码转换方式

    下面,详细介绍Base64的编码转换方式. 所谓Base64,就是说选出64个字符----小写字母a-z.大写字母A-Z.数字0-9.符号"+"."/"(再加上 ...

  3. 四种常见的 POST 提交数据方式--good

    HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS.GET.HEAD.POST.PUT.DELETE.TRACE.CONNECT 这几种.其中 POST 一般用来向服务端提交数据,本文 ...

  4. SAPUI5 freestyle vs SAP Fiori Elements —— 两种开发SAP UI5 Apps的方式对比

    概述 目前SAPUI5 SDK 提供了两种方式来开发一个SAPUI5 App.一种方式是传统的SAPUI5开发方式,一种是利用SAP Fiori Elements通过模板快速构建应用的方式. 本文简单 ...

  5. 四种常见的 POST 提交数据方式(application/x-www-form-urlencoded,multipart/form-data,application/json,text/xml)

    四种常见的 POST 提交数据方式(application/x-www-form-urlencoded,multipart/form-data,application/json,text/xml) 转 ...

  6. application/json 四种常见的 POST 提交数据方式

    四种常见的 POST 提交数据方式   HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS.GET.HEAD.POST.PUT.DELETE.TRACE.CONNECT 这几种.其中 ...

  7. 详细介绍Base64的编码转换方式

    下面,详细介绍Base64的编码转换方式. 所谓Base64,就是说选出64个字符----小写字母a-z.大写字母A-Z.数字0-9.符号"+"."/"(再加上 ...

  8. Redis的五种数据结构的内部编码

    type命令实际返回的就是当前键的数据结构类型,它们分别是:string(字符串).hash(哈希). list(列表).set(集合).zset(有序集合),但这些只是Redis对外的数据结构. 实 ...

  9. 四种常见的 POST 提交数据方式 专题

    定义和用法 enctype 属性规定在发送到服务器之前应该如何对表单数据进行编码.默认地,表单数据会编码为 "application/x-www-form-urlencoded". ...

  10. 转:application/json 四种常见的 POST 提交数据方式

    四种常见的 POST 提交数据方式 HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS.GET.HEAD.POST.PUT.DELETE.TRACE.CONNECT 这几种.其中 PO ...

随机推荐

  1. jvm虚拟机分享课笔记

    深入理解jvm虚拟机分享 1. jvm执行流程 java-编译-.class—类加载器(随时随地加载)--[进入java虚拟机] 执行引擎—本地方法接口---本地方法库 运行时数据区 2. 运行时数据 ...

  2. gitlab--ci文件

    1.when: manual  手动执行(加到哪个脚本中,哪个就会变成手动执行)

  3. Java面试题复习之Java基础

    1.面向对象的特征主要有哪些?   封装.继承.多态.抽象 2.final.finally.finalize的区别? final主要用于修饰类.方法.属性(变量)等. 通常被final修饰的类不能够被 ...

  4. zabbix学习小结

    一.zabbix是干什么的?    zabbix主要用来做监控.监控什么呢?比如日常巡检的CPU.内存.磁盘.swap交换分区和各端口进程等.    以往日常巡检,通过df -h命令获得磁盘的使用量和 ...

  5. 18核心的Intel i9将在2019年夏发布

    受工艺和架构限制,Intel HEDT发烧级桌面平台面对AMD早已经优势不再,但升级仍然在继续. 去年10月份,Intel一方面发布了第二代酷睿i9 X系列,仍然基于14nm Skylake-X架构, ...

  6. 讲解Linux数据库安装

    学习了linux这门课之后,就开始实践过程了,这样比较记得牢固,学以致用. 有了基本的命令,就可以试着安装数据库了. 企业环境 需要安装VMWare ESXi虚拟机,然后再在里面新建虚拟机. 镜像vm ...

  7. AI 卷积神经网络

    卷积神经网络(Convolutional Neural Network,简称CNN),顾名思义,使用了卷积.不过,这里用到的卷积和数学中的不完全一致. 1.连续卷积 2.离散卷积 3.二维离散卷积 4 ...

  8. kubernete 数据库 etcd

    etcdctl --cert-file /etc/ssl/etcd/ssl/member-pserver78.pem --key-file /etc/ssl/etcd/ssl/member-pserv ...

  9. 更换apt-get官方源为163源

    更换apt-get官方源为163源 1.# mv /etc/apt/sources.list /etc/apt/sources.list.bak 2.覆盖原来源文件 tee /etc/apt/sour ...

  10. 源代码管理工具(下)-SVN目录结构

    内容中包含 base64string 图片造成字符过多,拒绝显示