使用0~9生成10个随机数,并将之转换为one-hot编码,python代码实现
时间: 2024-05-06 08:21:16 浏览: 92
下面是Python代码实现:
```python
import random
random_nums = [random.randint(0, 9) for i in range(10)]
one_hot = [[0] * 10 for i in range(10)]
for i in range(10):
one_hot[i][random_nums[i]] = 1
print("随机数:", random_nums)
print("one-hot编码:", one_hot)
```
输出结果如下:
```
随机数: [2, 8, 0, 0, 7, 5, 1, 8, 3, 0]
one-hot编码: [[0, 0, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1, 0], [1, 0, 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, 1, 0, 0], [0, 0, 0, 0, 0, 1, 0, 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, 1, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
```
说明:首先使用 `random` 库生成指定范围内的随机整数,使用列表推导式生成一个包含 10 个随机整数的列表 `random_nums`。然后创建一个 10x10 的零矩阵 `one_hot`,使用嵌套的列表推导式将每个随机数转换为对应的 one-hot 编码,并将其存储到 `one_hot` 中。最后输出随机数以及对应的 one-hot 编码。
阅读全文