title: Using dimensionality reduction on matrix
body: <p>For supervised learning, my matrix size is really huge as a result of which only certain models agree to run with it. I read that PCA can help reducing dimensionality to a large extent.  </p>
  
  <p>Below is my code:</p>
  
  <pre><code>def run(command):
      output = subprocess.check_output(command, shell=True)
      return output
  
  f = open('/Users/ya/Documents/10percent/Vik.txt','r')
  vocab_temp = f.read().split()
  f.close()
  col = len(vocab_temp)
  print("Training column size:")
  print(col)
  
  #dataset = list()
  
  row = run('cat '+'/Users/ya/Documents/10percent/X_true.txt'+" | wc -l").split()[0]
  print("Training row size:")
  print(row)
  matrix_tmp = np.zeros((int(row),col), dtype=np.int64)
  print("Train Matrix size:")
  print(matrix_tmp.size)
          # label_tmp.ndim must be equal to 1
  label_tmp = np.zeros((int(row)), dtype=np.int64)
  f = open('/Users/ya/Documents/10percent/X_true.txt','r')
  count = 0
  for line in f:
      line_tmp = line.split()
      #print(line_tmp)
      for word in line_tmp[0:]:
          if word not in vocab_temp:
              continue
          matrix_tmp[count][vocab_temp.index(word)] = 1
      count = count + 1
  f.close()
  print("Train matrix is:\n ")
  print(matrix_tmp)
  print(label_tmp)
  print(len(label_tmp))
  print("No. of topics in train:")
  print(len(set(label_tmp)))
  print("Train Label size:")
  print(len(label_tmp))
  </code></pre>
  
  <p>I wish to apply PCA to matrix_tmp as it has a size of about (202180x9984). How can I modify my code to include it?</p>