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

Спасибо!

Джек

Ответы на вопрос(1)

Ваш ответ на вопрос