Scikit-learn train_test_split con índices

¿Cómo obtengo los índices originales de los datos cuando uso train_test_split ()?

Lo que tengo es lo siguiente

from sklearn.cross_validation import train_test_split
import numpy as np
data = np.reshape(np.randn(20),(10,2)) # 10 training examples
labels = np.random.randint(2, size=10) # 10 labels
x1, x2, y1, y2 = train_test_split(data, labels, size=0.2)

Pero esto no da los índices de los datos originales. Una solución alternativa es agregar los índices a los datos (p. Ej.data = [(i, d) for i, d in enumerate(data)]) y luego pásalos adentrotrain_test_split y luego expandir nuevamente. ¿Hay alguna solución más limpia?

Respuestas a la pregunta(4)

Su respuesta a la pregunta