我知道有次优的解决方案,但我正在努力优化我的代码。到目前为止,我找到的最短路径是:
import numpy as np
from sklearn.preprocessing import OrdinalEncoder
target = np.array(['dog', 'dog', 'cat', 'cat', 'cat', 'dog', 'dog', 'cat', 'cat'])
oe = OrdinalEncoder()
target = oe.fit_transform(target.reshape(-1, 1)).ravel()
target = np.eye(np.unique(target).shape[0])[np.array(target, dtype=np.int32)]
print(target)
[[0. 1.]
[0. 1.]
[1. 0.]
[1. 0.]
...
这是很难看的代码,而且很长。去掉它的任何部分,它都不会起作用。我正在寻找一种更简单的方法,不需要调用来自两个不同库的超过六个函数。你知道吗
明白了。这将适用于任何数量的唯一值数组。你知道吗
你可以使用keras和LabelEncoder
为什么不使用OneHotEncoder?你知道吗
它存储了有关转换的良好元数据:
此外,您还可以轻松转换回:
相关问题 更多 >
编程相关推荐