Heim  >  Artikel  >  Backend-Entwicklung  >  Wie konvertiere ich Index-Arrays in One-Hot-codierte Arrays in NumPy?

Wie konvertiere ich Index-Arrays in One-Hot-codierte Arrays in NumPy?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-01 03:08:01559Durchsuche

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

One-Hot-Codierung von Index-Arrays in NumPy

In NumPy erfolgt die Konvertierung eines 1D-Arrays von Indizes in ein One-Hot-codiertes 2D-Array eine gemeinsame Aufgabe. Wenn wir beispielsweise das Array a mit den Indizes [1, 0, 3] haben, möchten wir es wie folgt kodieren:

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

Um dies zu erreichen, gibt es zwei wichtige Schritte:

  1. Erstellen Sie ein auf Null gesetztes Array: Erstellen Sie ein 2D-Array b mit genügend Spalten (d. h. a.max() 1), um die One-Hot-codierten Werte aufzunehmen. Das Array sollte mit Nullen initialisiert werden.
  2. Setzen Sie geeignete Werte auf 1: Setzen Sie für jede Zeile i in b die a[i]te Spalte auf 1. Dies zeigt an, dass der ursprüngliche Index a[i] ist an Position i im One-Hot-codierten Array vorhanden.

Hier ist ein Codebeispiel zur Veranschaulichung:

<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>

Ausgabe:

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

Diese Methode wandelt das Array von Indizes effektiv in ein One-Hot-codiertes Array um, wobei jede Zeile einen One-Hot-codierten Wert des entsprechenden Index in a darstellt.

Das obige ist der detaillierte Inhalt vonWie konvertiere ich Index-Arrays in One-Hot-codierte Arrays in NumPy?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn