ホームページ >バックエンド開発 >Python チュートリアル >NumPy でインデックスの配列をワンホット エンコードされた配列に変換するにはどうすればよいですか?

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

Barbara Streisand
Barbara Streisandオリジナル
2024-11-01 00:09:28612ブラウズ

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

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

多くの場合、インデックスの 1D 配列を変換する必要があります。各行が元の配列内の対応するインデックスのワンホット エンコーディングを表す 2D 配列に変換されます。

例:

インデックスの 1D 配列を考えてみましょう。 a':

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

各行が 'a':

<code class="python">b = np.array([[0, 1, 0, 0], [1, 0, 0, 0], [0, 0, 0, 1]])</code>

解決策:

この変換を実現するには、次の手順を利用できます:

  1. ゼロ化された配列の作成:ゼロ化された配列を作成します。 'a' の最大インデックス値を収容するのに十分な列を含む配列 'b' に 1 を加えたもの ('a.max() 1')。
<code class="python">b = np.zeros((a.size, a.max() + 1))</code>
  1. One -ホット エンコーディング:配列内の各行 'i' について、'a[i]' 番目の列を 1 に設定します。このステップでは、'a' の各インデックスを 1 つのホット エンコードされた行に変換します。 'b'.
<code class="python">b[np.arange(a.size), a] = 1</code>

出力:

このコードを実行すると、目的のワンホット エンコードされた配列 'b':

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

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