首页 >后端开发 >Python教程 >如何在 NumPy 中将索引数组转换为 One-Hot 编码数组?

如何在 NumPy 中将索引数组转换为 One-Hot 编码数组?

Patricia Arquette
Patricia Arquette原创
2024-11-01 03:08:01655浏览

How to Convert Index Arrays to One-Hot Encoded Arrays in NumPy?

NumPy 中的 One-Hot 编码索引数组

在 NumPy 中,将一维索引数组转换为 one-hot 编码的二维数组是一项共同的任务。例如,给定索引为 [1, 0, 3] 的数组 a,我们希望将其编码为:

b = [[0,1,0,0], [1,0,0,0], [0,0,0,1]]

要实现此目的,有两个关键步骤:

  1. 创建一个归零数组: 创建一个具有足够列(即 a.max() 1)的 2D 数组 b 来容纳 one-hot 编码值。数组应该用零初始化。
  2. 将适当的值设置为 1: 对于 b 中的每一行 i,将第 a[i] 列设置为 1。这表明原始索引a[i] 出现在 one-hot 编码数组中的位置 i 处。

这是一个代码示例来说明:

<code class="python">import numpy as np

a = np.array([1, 0, 3])
b = np.zeros((a.size, a.max() + 1))
b[np.arange(a.size), a] = 1

print(b)</code>

输出:

[[0. 1. 0. 0.]
 [1. 0. 0. 0.]
 [0. 0. 0. 1.]]

此方法有效地将索引数组转换为 one-hot 编码数组,其中每一行代表 a 中相应索引的 one-hot 编码值。

以上是如何在 NumPy 中将索引数组转换为 One-Hot 编码数组?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn