ホームページ  >  記事  >  バックエンド開発  >  NumPy でインデックス配列をワンホットエンコードされた配列に変換するには?

NumPy でインデックス配列をワンホットエンコードされた配列に変換するには?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-01 03:08:01569ブラウズ

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

NumPy でのインデックス配列のワンホット エンコード

NumPy では、インデックスの 1D 配列をワンホット エンコードされた 2D 配列に変換します。共通のタスク。たとえば、インデックス [1, 0, 3] を持つ配列 a を次のようにエンコードしたいとします。

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

これを実現するには、2 つの重要な手順があります:

  1. ゼロ化された配列を作成します: ワンホット エンコードされた値を収容するのに十分な列 (つまり、a.max() 1) を持つ 2D 配列 b を作成します。配列はゼロで初期化する必要があります。
  2. 適切な値を 1 に設定します。 b の各行 i について、a[i] 番目の列を 1 に設定します。これは、元のインデックスがa[i] は、ワンホット エンコードされた配列の 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.]]

このメソッドは、インデックスの配列をワンホット エンコードされた配列に効果的に変換します。各行は、a 内の対応するインデックスのワンホット エンコードされた値を表します。

以上がNumPy でインデックス配列をワンホットエンコードされた配列に変換するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。