【发布时间】:2019-04-08 02:22:23
【问题描述】:
我有一个 2D numpy 数组,如下所示:
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}}
外部键是原始数组中的列索引,内部字典给出 numeric: 字符值的映射。
有没有一种简单的方法可以做到这一点,最好是sklearn 风格的东西,我可以在其中做一个fit_transform,然后是transform(用于训练和测试集目的)?
我正在查看sklearn 的LabelEncoder,基本上我需要在每一列上应用不同的。有关如何有效地做到这一点的任何建议?
谢谢!
杰克
【问题讨论】:
-
你真的关心科学 = 0 和数学 = 1,或者任何这样的映射是否有效?
-
@DSM 任何此类映射都可以使用。这只是一个示例,这些不是我正在使用的实际数据:)
标签: python numpy scikit-learn