python深度学习--将一维数字标签映射为二维独热码

目的

Y是列标签,对应0,1,2这样的数字,如Y=[ 0 1 2 1 1]'(5*1)
目的经过独热码映射为[[1 0 0];[0 1 0];[0 0 1];[0 1 0];[0 1 0]]
(5*3)

解决

  1. 先转化为int型(只有int可以作为索引值)
  2. 再通过作为单位矩阵的索引得到对应的独热码,此时得到的Y是5*1*3的
  3. 再使用Y[:,0,:]去掉中间的维度,即可得到所需结果
Y=np.eye(3)[Y.astype(np.int64)]
Y=Y[:,0,:]

猜你喜欢

转载自blog.csdn.net/weixin_44738872/article/details/127994065