python重新编号功能_python标签值标准化到[0-(#class-1)](重新编码标签)

python 处理标签常常需要将一组标签映射到一组数字,数字还要求连续。

比如 ['a', 'b', 'c', 'a', 'a', 'b', 'c'] ==(a->0, b->1, c->2)=> [0, 1, 2, 0, 0, 1, 2]。 为了便于本文被搜索,加个关键词:重新编码

可以用sklearn.preprocessing.LabelEncoder()这个函数。

以数字标签为例:

from sklearn import preprocessing

le = preprocessing.LabelEncoder()

le.fit([1,2,2,6,3])

获取标签值#

In [2]: le.classes_

Out[2]: array([1, 2, 3, 6])

将标签值标准化#

In [3]: le.transform([1,1,3,6,2])

Out[3]: array([0, 0, 2, 3, 1], dtype=int64)

将标准化的标签值反转#

即“反向编码”:

In [4]: le.inverse_transform([0, 0, 2, 3, 1])

Out[4]: array([1, 1, 3, 6, 2])

非数字型标签值标准化:

In [5]: from sklearn import preprocessing

...: le =preprocessing.LabelEncoder()

...: le.fit(["paris", "paris", "tokyo", "amsterdam"])

...: print('标签个数:%s'% le.classes_)

...: print('标签值标准化:%s' % le.transform(["tokyo", "tokyo", "paris"]))

...: print('标准化标签值反转:%s' % le.inverse_transform([2, 2, 1]))

...:

标签个数:['amsterdam' 'paris' 'tokyo']

标签值标准化:[2 2 1]

标准化标签值反转:['tokyo' 'tokyo' 'paris']

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值