title: Insert or delete a step in scikit-learn Pipeline
body: <p>Is it possible to delete or insert a step in a <code>sklearn.pipeline.Pipeline</code> object?</p>
  
  <p>I am trying to do a grid search with or without one step in the Pipeline object. And wondering whether I can insert or delete a step in the pipeline. I saw in the <code>Pipeline</code> source code, there is a <code>self.steps</code> object holding all the steps. We can get the steps by <code>named_steps()</code>.  Before modifying it, I want to make sure, I do not cause unexpected effects. </p>
  
  <p>Here is a example code:</p>
  
  <pre><code>from sklearn.pipeline import Pipeline
  from sklearn.svm import SVC
  from sklearn.decomposition import PCA
  estimators = [('reduce_dim', PCA()), ('svm', SVC())]
  clf = Pipeline(estimators)
  clf 
  </code></pre>
  
  <p>Is it possible that we do something like <code>steps = clf.named_steps()</code>, then insert or delete in this list? Does this cause undesired effect on the clf object?</p>