Одно горячее кодирование двух массивов (маркировка двух источников данных) - PullRequest
0 голосов
/ 07 февраля 2020

Я хотел бы использовать одну горячую кодировку для классификации источника данных.

У меня есть два типа данных как numpy массивы, Cp_a и Cp_b.

И эти данные имеют форму (10000, 74) и (7000, 74) соответственно.

Тип данных Cp_a и Cp_b: float64.

Я хотел бы объединить эти данные с категориальными значениями 0 или 1, используя vstack() и one hot encoding.

Окончательная форма, которую я хочу видеть, это (17000,75) с 0 для данных Cp_a и 1 для данных Cp_b.

Как я могу это сделать используя scikit учить или керас?

Ответы [ 2 ]

1 голос
/ 07 февраля 2020
>>> import numpy as np
>>> a1 = np.arange(10).reshape(5,2)
>>> a2 = np.random.randint(10,50,size=(5,2))
>>> print(a1)
[[0 1]
 [2 3]
 [4 5]
 [6 7]
 [8 9]]
>>> print(a2)
[[23 42]
 [39 28]
 [39 19]
 [49 46]
 [33 29]]
>>> a1 = np.column_stack((a1,np.zeros((a1.shape[0],1))))
>>> a2 = np.column_stack((a2,np.ones((a2.shape[0],1))))
>>> np.vstack((a1,a2))
array([[ 0.,  1.,  0.],
       [ 2.,  3.,  0.],
       [ 4.,  5.,  0.],
       [ 6.,  7.,  0.],
       [ 8.,  9.,  0.],
       [23., 42.,  1.],
       [39., 28.,  1.],
       [39., 19.,  1.],
       [49., 46.,  1.],
       [33., 29.,  1.]])
1 голос
/ 07 февраля 2020

Вы можете сделать это в numpy, используя функцию append.

import numpy as np

Cp_a = np.append(Cp_a, np.zeros((len(Cp_a), 1), axis=1)
Cp_b = np.append(Cp_b, np.ones((len(Cp_b), 1), axis=1)
Cp_ab = np.vstack([Cp_a, Cp_b])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...