один столбец горячего кодирования по определенному индексу в определенном измерении - PullRequest
0 голосов
/ 20 мая 2019

У меня есть 3-х мерный массив формы (12000, 200, 5), где 12000 - общее количество выборок, 200 - количество наблюдений на выборку, и их 5 наблюдений на наблюдения. из 5 признаков признак 1 в третьем измерении является категоричным. Как выполнить горячее кодирование, которое используется во всех выборках и наблюдениях.

EDITED

например, если исходный ввод имеет размер (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]]]

1 Ответ

0 голосов
/ 21 мая 2019

Здесь я нашел решение.

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])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...