Understanding == auf ein NumPy-Array angewendet

Ich bin neu in Python und lerne TensorFlow. In einem Tutorial mit demnotMNIST Datensatz, sie geben Beispielcode an, um die Beschriftungsmatrix in ein 1-aus-n-codiertes Array umzuwandeln.

Das Ziel ist es, ein Array bestehend aus den Label-Ganzzahlen 0 ... 9 zu nehmen und eine Matrix zurückzugeben, in der jede Ganzzahl in ein 1-aus-n-codiertes Array wie dieses transformiert wurde:

0 -> [1, 0, 0, 0, 0, 0, 0, 0, 0, 0]
1 -> [0, 1, 0, 0, 0, 0, 0, 0, 0, 0]
2 -> [0, 0, 1, 0, 0, 0, 0, 0, 0, 0]
...

Der Code, den sie dafür geben, ist:

# Map 0 to [1.0, 0.0, 0.0 ...], 1 to [0.0, 1.0, 0.0 ...]
labels = (np.arange(num_labels) == labels[:,None]).astype(np.float32)

Allerdings verstehe ich nicht, wie dieser Code das überhaupt macht. Es sieht so aus, als würde lediglich ein Array von Ganzzahlen im Bereich von 0 bis 9 generiert, dieses dann mit der Beschriftungsmatrix verglichen und das Ergebnis in einen Gleitkommawert konvertiert. Wie funktioniert ein== Operator Ergebnis in einem one-of-n codierte Matrix?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage