У меня есть двумерный массив, как показано ниже:
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
LabelEncoder
, и, по сути, мне нужно применить разные значения для каждого столбца. Любые предложения о том, как сделать это эффективно?
Спасибо!
Jack