Comprensión == aplicado a una matriz NumPy

Soy nuevo en Python y estoy aprendiendoTensorFlow. En un tutorial usando elconjunto de datos notMNIST, dan un código de ejemplo para transformar la matriz de etiquetas en una matriz codificada de uno de n.

El objetivo es tomar una matriz que consta de enteros de etiqueta 0 ... 9, y devolver una matriz donde cada entero se ha transformado en una matriz codificada de uno de n como esta:

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

El código que dan para hacer esto es:

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

Sin embargo, no entiendo cómo este código hace eso en absoluto. Parece que solo genera una matriz de enteros en el rango de 0 a 9, y luego compara eso con la matriz de etiquetas, y convierte el resultado en un flotante. ¿Cómo funciona un== resultado del operador en unmatriz codificada uno de n?

Respuestas a la pregunta(2)

Su respuesta a la pregunta