Efficient implementation of aggregating test/train data
How about:

x_train, y_train = np.hsplit(np.asarray(train), 2)


Which uses only numpy functions and should be a bit faster than your implementation using intermediate lists.