Deep learning en Python (Keras)

Buenas,

Estoy leyendo un libro sobre Deep Learning para programar una red neuronal y he llegado a una parte de código que no entiendo de ininguna de las maneras. Es una parte en la que el dataset son críticas de películas, que es texto convertido a una lista de enteros (cada entero es un índice que corresponde a una palabra), un ejemplo puede ser:

[3, 17, 22, 162, ..., 45]

Cada crítica puede ser positiva o negativa, en caso de ser positiva, le corresponde la etiqueta 1 (int), si es negativa, la etiqueta entera 0 (int)

La carga del dataset es ésta:

from keras.datasets import imdb
(train_data, train_labels), (test_data, test_labels) = imdb.load_data(
num_words=10000)

La primera fase es la preparación de datos, (convertir la lista de enteros en tensor) que literal, textualmente y en inglés dice esto:

One-hot encode your lists to turn them into vectors of 0s and 1s. This would
mean, for instance, turning the sequence [3, 5] into a 10,000-dimensional vec-
tor that would be all 0s except for indices 3 and 5, which would be 1s. Then you
could use as the first layer in your network a Dense layer, capable of handling
floating-point vector data.


y la función que hace esto último es ésta:

---------------------------------------------------------------
import numpy as np

def vectorize_sequences(sequences, dimension=10000):
[IDENT]results = np.zeros((len(sequences), dimension))
[IDENT]for i, sequence in enumerate(sequences):
[IDENT][IDENT]results[i, sequence] = 1.
[IDENT]return results

x_train = vectorize_sequences(train_data)
x_test = vectorize_sequences(test_data)
---------------------------------------------------------------

Yo no termino de entender qué elementos de la matriz de ceros pasan a ser 1's, ni el motivo por el que se pasa de listas de enteros arrays de 1s y 0s tipo float. Si algún entendido en python y/o deep learning puede arrojar algo de luz quedaré muy agradecido.

Gracias!

EDIT: Creo que ya lo he pillado, lo explico con un ejemplo para hacerlo más fácil: Si en la posición 6 del array hay un 1, entonces el número 6 es parte la secuencia de enteros, si hay un 0 en la posición 5, el 5 no forma parte de la secuencia.
1 respuesta