Scikit-learn train_test_split com índices

Como obtenho os índices originais dos dados ao usar train_test_split ()?

O que eu tenho é o seguinte

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)

Mas isso não fornece os índices dos dados originais. Uma solução alternativa é adicionar os índices aos dados (por exemplo,data = [(i, d) for i, d in enumerate(data)]) e depois passá-los para dentrotrain_test_split e depois expanda novamente. Existem soluções mais limpas?