借助numpy
库的eye
函数生成对角矩阵。通过索引list获取one-hot编码
import numpy as np
index_list = [1,0,3]
max_index = np.max(index_list) + 1
np.eye(max_index)[index_list) # 得到深度为4的one-hot编码
这里的one-hot编码方式根据索引值进行编码,当索引值非连续且差距很大,比如index_list=[1,0,11111]
时,这种上述编码长度为11112,非常不合理。
也可以借助sklearn
库的one-hot编码函数进行编码。