title: How to split data into trainset and testset randomly?
body: <p>I have a large dataset and want to split it into training(50%) and testing set(50%). </p>
  
  <p>Say I have 100 examples stored the input file, each line contains one example. I need to choose 50 lines as training set and 50 lines testing set. </p>
  
  <p>My idea is first generate a random list with length 100 (values range from 1 to 100), then use the first 50 elements as the line number for the 50 training examples. The same with testing set.</p>
  
  <p>This could be achieved easily in Matlab</p>
  
  <pre><code>fid=fopen(datafile);
  C = textscan(fid, '%s','delimiter', '\n');
  plist=randperm(100);
  for i=1:50
      trainstring = C{plist(i)};
      fprintf(train_file,trainstring);
  end
  for i=51:100
      teststring = C{plist(i)};
      fprintf(test_file,teststring);
  end
  </code></pre>
  
  <p>But how could I accomplish this function in Python? I'm new to Python, and don't know whether I could read the whole file into an array, and choose certain lines.</p>