Категориальные данные: преобразовать в двоичную кодировку, добавив новое измерение - PullRequest
0 голосов
/ 05 марта 2019

Каждая функция в моем наборе данных имеет три категории и в настоящее время кодируется целыми числами 0, 1 и 2. Вместо одного горячего, я хочу закодировать его в двоичный тип кодирования, где 0 заменяется на [0,0], 1 заменяется на [0,1], а 2 заменяется на [1,1].Как бы я сделал это без использования цикла for?

Допустим, мои данные выглядят так:

  [[1, 2, 0],
   [2, 0, 1]]

В результате следует добавить измерение -

  [[[0., 1.],
    [1., 1.],
    [0., 0.]],

   [[1., 1.],
    [0., 0.],
    [0., 1.]]]

1 Ответ

0 голосов
/ 05 марта 2019

Проверка с

(a.ravel()[:,None]>np.arange(a.max())).astype(int)[:,::-1].reshape((2,-1,2))
Out[353]: 
array([[[0, 1],
        [1, 1],
        [0, 0]],
       [[1, 1],
        [0, 0],
        [0, 0]]])

a=np.array( [[1, 2, 0],
   [2, 0, 1]])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...