code: def replace(X, old, new, strict=True, cols=None, rows=None):
      if cols == None:
          cols = X.dtype.names
      elif isinstance(cols, str):
          cols = cols.split(',')
      if rows == None:
          rows = np.ones((len(X),), bool)
      if strict:
          new = np.array(new)
          for a in cols:
              if X.dtype[a] < new.dtype:
                  print('WARNING: dtype of column', a, 
                        'is inferior to dtype of ', new, 
                        'which may cause problems.')
              try:
                  X[a][(X[a] == old)[rows]] = new
              except:
                  print('Replacement not made on column', a, '.')
      else:
          for a in cols:
              QuickRep = True
              try:
                  colstr = ''.join(X[a][rows])
              except TypeError:
                  print('Not replacing in column', a, 'due to type mismatch.')
              else:
                  avoid = [ord(o) for o in utils.uniqify(old + new + colstr)]
                  ok = set(range(256)).difference(avoid)
                  if len(ok) > 0:
                      sep = chr(list(ok)[0])
                  else:
                      ok = set(range(65536)).difference(avoid)
                      if len(ok) > 0:
                          sep = unichr(list(ok)[0])
                      else:
                          print('All unicode characters represented in column', 
                                a, ', can\t replace quickly.')
                          QuickRep = False
                  if QuickRep:
                      newrows = np.array(sep.join(X[a][rows])
                                         .replace(old, new).split(sep))
                  else:
                      newrows = np.array([aa.replace(old,new) for aa in 
                                          X[a][rows]])
                  X[a][rows] = np.cast[X.dtype[a]](newrows)
                  if newrows.dtype > X.dtype[a]:
                      print('WARNING: dtype of column', a, 'is inferior to the ' 
                            'dtype of its replacement which may cause problems '
                            '(ends of strings might get chopped off).')