我知道有次优解决方案,但我正在尝试优化我的代码。到目前为止,我找到的最短的方法是这样的:
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.]
...
这是一段冗长且难看的代码,删除任何部分都将导致其无法正常工作。我正在寻找一种更简单的方法,不需要调用两个不同库中超过六个函数。
oe
生成的target
是什么? - hpaulj