OrdinalEncoder
я есть двумерный массив, как показано ниже:
a=np.array([["Science", "Blue", 3],
["Math", "Red", 4],
["Math", "Red", 5],
["Science", "Red", 3]])
И мне нужно преобразовать его в столбец числовых значений, как показано ниже (желаемый вывод):
out=np.array([[0, 0, 0],
[1, 1, 1],
[1, 1, 2],
[0, 1, 0]])
Однако для последующей интерпретации мне также необходимо иметь выходные данные для трассировки от числовых значений к исходным значениям. Я думал что-то вроде этого:
trace_back_dict = {0: {0: "Science", 1: "Math"},
1: {0: "Blue", 1: "Red"},
2: {0: 3, 1: 4, 2: 5}}
Где внешние ключи - это индексы столбцов из исходного массива, а внутренние ключи дают отображение числового: символьного значения.
Есть ли простой способ сделать это, желательно что-то вsklearn
стиль, где я могу сделатьfit_transform
, а потомtransform
(для целей обучения и испытаний)?
Я смотрел наsklearn
«sLabelEncoder
и, по сути, мне нужно применить разные по каждому столбцу. Любые предложения о том, как сделать это эффективно?
Спасибо!
Джек