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

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

Barbara Streisand
发布: 2024-11-01 00:09:28
原创
615 人浏览过

How to Convert an Array of Indices to a One-Hot Encoded Array in NumPy?

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

通常,有必要转换一维索引数组到一个 2D 数组中,其中每一行代表原始数组中相应索引的 one-hot 编码。

示例:

让我们有一个一维索引数组 ' a':

<code class="python">a = np.array([1, 0, 3])</code>
登录后复制

我们的目标是创建一个二维数组 'b',其中每一行都是 'a' 中相应索引的 one-hot 编码:

<code class="python">b = np.array([[0, 1, 0, 0], [1, 0, 0, 0], [0, 0, 0, 1]])</code>
登录后复制

解决方案:

要实现此转换,我们可以利用以下步骤:

  1. 创建归零数组:
    创建归零数组数组 'b' 有足够的列来容纳 'a' 中的最大索引值,再加一 ('a.max() 1')。
<code class="python">b = np.zeros((a.size, a.max() + 1))</code>
登录后复制
  1. 一-热编码:
    对于数组中的每一行“i”,将“a[i]”列设置为 1。此步骤将“a”中的每个索引转换为'b'.
<code class="python">b[np.arange(a.size), a] = 1</code>
登录后复制

输出:

执行此代码会生成所需的单热编码数组 'b':

<code class="python">[[ 0.  1.  0.  0.]
 [ 1.  0.  0.  0.]
 [ 0.  0.  0.  1.]]</code>
登录后复制

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板