title: Memory efficient way to split large numpy array into train and test
body: <p>I have a large numpy array and when I run scikit learn's train_test_split to split the array into training and test data, I always run into memory errors.  What would be a more memory efficient method of splitting into train and test, and why does the train_test_split cause this?</p>
  
  <p>The follow code results in a memory error and causes a crash</p>
  
  <pre><code>import numpy as np
  from sklearn.cross_validation import train_test_split
  
  X = np.random.random((10000,70000))
  Y = np.random.random((10000,))
  X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size = 0.33, random_state=42)
  </code></pre>