y_onehot怎么赋值
时间: 2024-01-31 16:02:50 浏览: 35
one-hot编码方法
y_onehot是一个二维数组,可以通过循环遍历每个样本的标签,然后用numpy中的eye函数将每个标签转化为对应的one-hot编码。示例代码如下:
```python
import numpy as np
# 假设y是一个包含10个样本的标签列表,每个标签的取值范围为0~9
y = [3, 5, 1, 0, 8, 7, 2, 9, 6, 4]
# 创建一个10x10的单位矩阵,作为one-hot编码的模板
onehot_template = np.eye(10)
# 创建一个10x10的全0矩阵,用于存储所有样本的one-hot编码
y_onehot = np.zeros((10, 10))
# 循环遍历每个样本的标签,将其转化为one-hot编码,并存储到y_onehot中
for i in range(len(y)):
y_onehot[i] = onehot_template[y[i]]
print(y_onehot)
```
输出结果如下:
```
[[0. 0. 0. 1. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 1. 0. 0. 0. 0.]
[0. 1. 0. 0. 0. 0. 0. 0. 0. 0.]
[1. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0. 0. 1. 0.]
[0. 0. 0. 0. 0. 0. 0. 1. 0. 0.]
[0. 0. 1. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0. 0. 0. 1.]
[0. 0. 0. 0. 0. 0. 1. 0. 0. 0.]
[0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]]
```
可以看到,y_onehot中的每一行对应一个样本的one-hot编码,该编码中只有标签所对应的位置是1,其余位置都是0。
阅读全文