首页  >  文章  >  后端开发  >  如何在 NumPy 中对索引数组进行 One-Hot 编码?

如何在 NumPy 中对索引数组进行 One-Hot 编码?

Linda Hamilton
Linda Hamilton原创
2024-10-30 22:50:03645浏览

How to One-Hot Encode Index Arrays in NumPy?

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

给定一个索引数组,将其转换为 One-hot 编码数组可以是适用于各种机器学习应用的有用技术。 One-hot 编码将每个索引表示为一个二进制向量,其中索引对应的元素为 1,所有其他元素为 0。这种技术在处理分类数据或索引作为特征值的情况下特别有价值。

为了在 NumPy 中实现 one-hot 编码,我们遵循一个简单的过程:

  1. 创建一个具有足够列的零初始化数组,其中列数等于索引的最大值数组加一。
  2. 对于结果数组中的每一行,将与该行索引对应的列设置为 1。

考虑提供的示例:

<code class="python">a = np.array([1, 0, 3])
b = np.zeros((a.size, a.max() + 1))
b[np.arange(a.size), a] = 1</code>

在此示例中,索引数组 a 的值范围为 0 到 3,因此我们创建一个包含 4 列的零填充数组 b。然后,我们使用 np.arange() 函数生成 b 的行索引数组,并根据 a 中的值将相应的列设置为 1。

生成的数组 b 现在是一个单热编码的原始索引数组 a 的表示:

array([[ 0.,  1.,  0.,  0.],
       [ 1.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  1.]])

这个单热编码数组保留了索引值的分类性质,并允许在机器学习算法中进行高效处理。

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

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