擅长:python、mysql、java
<p>为什么不使用<a href="https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.OneHotEncoder.html#sklearn.preprocessing.OneHotEncoder" rel="nofollow noreferrer">OneHotEncoder</a>?你知道吗</p>
<pre><code>>>> from sklearn.preprocessing import OneHotEncoder
>>> ohe = OneHotEncoder(categories='auto', sparse=False)
>>> arr = ohe.fit_transform(target[:, np.newaxis])
>>> arr
array([[0., 1.],
[0., 1.],
[1., 0.],
[1., 0.],
[1., 0.],
[0., 1.],
[0., 1.],
[1., 0.],
[1., 0.]])
</code></pre>
<p>它存储了有关转换的良好元数据:</p>
<pre><code>>>> ohe.categories_
[array(['cat', 'dog'], dtype='<U3')]
</code></pre>
<p>此外,您还可以轻松转换回:</p>
<pre><code>>>> ohe.inverse_transform(arr).ravel()
array(['dog', 'dog', 'cat', 'cat', 'cat', 'dog', 'dog', 'cat', 'cat'],
dtype='<U3')
</code></pre>