title: Replacing characters in Python returns TypeError: string operation on non-string array
body: <p>I have a dataframe 'data' and I want to replace all the punctuation marks in a given column with nothing (so I want to remove them).</p>
  
  <p>Im using Python 3 and Pandas and Numpy to pre-format some text before working with a Neural Network.</p>
  
  <pre class="lang-py prettyprint-override"><code>symbols = "!\"#$%&amp;()*+-./:;&lt;=&gt;?@[\]^_`{|}~\n"
  dataClean = data['description']
  
  for i in symbols:
      dataClean = np.char.replace(dataClean,i,"")
  </code></pre>
  
  <p>I expected that, for every item in dataClean (it goes from 0 to 2549), every string contained in each row got punctuation marks deleted. 
  But I got this in return:</p>
  
  <pre class="lang-py prettyprint-override"><code>TypeError                                 Traceback (most recent call last)
  &lt;ipython-input-87-aa944ae6e61c&gt; in &lt;module&gt;
        3 
        4 for i in symbols:
  ----&gt; 5     dataClean = np.char.replace(dataClean,i,"")
        6 
        7 print(dataClean[2])
  
  ~\Anaconda3\lib\site-packages\numpy\core\defchararray.py in replace(a, old, new, count)
     1184     return _to_string_or_unicode_array(
     1185         _vec_string(
  -&gt; 1186             a, object_, 'replace', [old, new] + _clean_args(count)))
     1187 
     1188 
  
  TypeError: string operation on non-string array
  </code></pre>