code: def get_stats(a, full=False):
      
      from scipy.stats.mstats import mode 
      a = checkma(a)
      thresh = 4E6
      if full or a.count() < thresh:
          q = (iqr(a))
          p16, p84, spread = robust_spread(a)
          #There has to be a better way to compute the mode for a ma
          #mstats.mode returns tuple of (array[mode], array[count])
          a_mode = float(mode(a, axis=None)[0])
          stats = (a.count(), a.min(), a.max(), a.mean(dtype='float64'), a.std(dtype='float64'), \
                  fast_median(a), mad(a), q[0], q[1], q[2], a_mode, p16, p84, spread) 
      else:
          ac = a.compressed()
          stride = int(np.around(ac.size / thresh))
          ac = np.ma.array(ac[::stride])
          #idx = np.random.permutation(ac.size)
          #Note: need the ma cast here b/c of a.count() below
          #ac = np.ma.array(ac[idx[::stride]])
          q = (iqr(ac))
          p16, p84, spread = robust_spread(ac)
          ac_mode = float(mode(ac, axis=None)[0])
          stats = (a.count(), a.min(), a.max(), a.mean(dtype='float64'), a.std(dtype='float64'), \
                  fast_median(ac), mad(ac), q[0], q[1], q[2], ac_mode, p16, p84, spread) 
      return stats
docs: Compute and print statistics for input array
  
      Needs to be cleaned up, return a stats object