怎么把独热编码变成0.1.2python
时间: 2024-01-22 15:18:14 浏览: 52
可以使用 `numpy` 库中的 `argmax` 函数将独热编码转换为数字。具体步骤如下:
1.导入 `numpy` 库:
```python
import numpy as np
```
2.假设独热编码为 `one_hot`,使用 `argmax` 函数将其转换为数字:
```python
num = np.argmax(one_hot)
```
其中,`num` 为转换后的数字。
3.如果要将多个独热编码转换为数字,可以使用循环:
```python
nums = []
for one_hot in one_hots:
num = np.argmax(one_hot)
nums.append(num)
```
其中,`one_hots` 为多个独热编码组成的列表,`nums` 为转换后的数字组成的列表。
相关问题
怎么把y_train独热编码变成0.1.2python
你可以使用 `LabelEncoder` 和 `OneHotEncoder` 两个工具来实现将 `y_train` 独热编码变成 0、1、2 的操作。具体实现步骤如下:
```python
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
import numpy as np
# 假设 y_train 是一个包含 3 类元素的列表
y_train = ['cat', 'dog', 'cat', 'bird', 'dog', 'bird']
# 使用 LabelEncoder 将 y_train 转换为数字标签
le = LabelEncoder()
y_train_encoded = le.fit_transform(y_train)
# 使用 OneHotEncoder 将数字标签转换为独热编码
ohe = OneHotEncoder(categories='auto')
y_train_onehot = ohe.fit_transform(y_train_encoded.reshape(-1, 1)).toarray()
# 将独热编码转换为 0、1、2 的形式
y_train_final = np.argmax(y_train_onehot, axis=1)
print(y_train_final)
# 输出结果:[0 1 0 2 1 2]
```
在上述代码中,我们首先使用 `LabelEncoder` 将 `y_train` 中的字符串元素转换为数字标签,然后使用 `OneHotEncoder` 将数字标签转换为独热编码。最后,我们使用 `numpy` 库的 `argmax` 函数将独热编码转换为 0、1、2 的形式。
阅读全文