我有一个形状为(12000, 200, 5)
的3维数组,其中12000是样本总数,200是每个样本的观测数,它们是每个观测的5个特征。在5个要素中,第3维索引1处的要素是分类的。如何对所有样本和观察结果中的特征进行热编码。
例如,如果原始输入的尺寸为(2,3,4)
为
[[[2 , 15, 23, 63],
[5, 23, 543, 94],
[8, 23 , 65, 25]],
[[3 , 15, 23, 57],
[12, 23, 543, 28],
[9, 23 , 65, 11]]]
要求的输出应该是
[[[0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0. , 15, 23, 63],
[0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 23, 543, 94],
[0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 23 , 65, 25]],
[[0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0. , 15, 23, 57],
[0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 23, 543, 28],
[0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 23 , 65, 11]]]
答案 0 :(得分:0)
我在这里找到了解决方法。
X = (np.random.rand(3,2,5)*10).astype(int)
b=X.reshape(X.shape[0]*X.shape[1],X.shape[2])
c=to_categorical(b[:,0]) # column no 0
d=np.append(b,c,axis=1)
e=np.delete(d,0,1) # removing first columns from array, np.delete(array, columnNo/rowNo, axis)
X=e.reshape(X.shape[0],X.shape[1],e.shape[1])