将一个热编码数据从数组转换为数字序列
Transform OneHot-encoded data from array to sequence of numbers
我试图使用 OneHot 对不同类别的列进行编码并将编码保存在字典中,因为我想在具有相同类别但顺序不同的第二列上使用这些精确编码。在字典中,值对保存为
{'name1': array([0., 0., 1., 0., 0.]), 'name2': array([0., 1., 0., 0., 0.]), ...}
并且此表格不能用于例如正在申请
StandardScalar.fit.transform()
给他们。有没有办法更改这些值以适应下面的 OneHotEncoding 的“经典”形式?
{'name1': 0 0 1 0 0 , 'name2': 0 1 0 0 0 , ...}
感谢您的帮助!
将它们转换为 DataFrame df
也可以转换为分类一个热数组 y
:
import numpy as np
import pandas as pd
a={'name1': np.array([0., 0., 1., 0., 0.]), 'name2': np.array([0., 1., 0., 0., 0.])}
df=pd.DataFrame(a)
y=np.array(df)
df
内容为:
name1 name2
0 0.0 0.0
1 0.0 1.0
2 1.0 0.0
3 0.0 0.0
4 0.0 0.0
y
内容为:
array([[0., 0.],
[0., 1.],
[1., 0.],
[0., 0.],
[0., 0.]])
因此,您可以使用其中任何一个
我试图使用 OneHot 对不同类别的列进行编码并将编码保存在字典中,因为我想在具有相同类别但顺序不同的第二列上使用这些精确编码。在字典中,值对保存为
{'name1': array([0., 0., 1., 0., 0.]), 'name2': array([0., 1., 0., 0., 0.]), ...}
并且此表格不能用于例如正在申请
StandardScalar.fit.transform()
给他们。有没有办法更改这些值以适应下面的 OneHotEncoding 的“经典”形式?
{'name1': 0 0 1 0 0 , 'name2': 0 1 0 0 0 , ...}
感谢您的帮助!
将它们转换为 DataFrame df
也可以转换为分类一个热数组 y
:
import numpy as np
import pandas as pd
a={'name1': np.array([0., 0., 1., 0., 0.]), 'name2': np.array([0., 1., 0., 0., 0.])}
df=pd.DataFrame(a)
y=np.array(df)
df
内容为:
name1 name2
0 0.0 0.0
1 0.0 1.0
2 1.0 0.0
3 0.0 0.0
4 0.0 0.0
y
内容为:
array([[0., 0.],
[0., 1.],
[1., 0.],
[0., 0.],
[0., 0.]])
因此,您可以使用其中任何一个