docs: def rephase(data, period=1.0, shift=0.0, col=0, copy=True):
      """
      Returns *data* (or a copy) phased with *period*, and shifted by a
      phase-shift *shift*.
  
      **Parameters**
  
      data : array-like, shape = [n_samples, n_cols]
          Array containing the time or phase values to be rephased in column
          *col*.
      period : number, optional
          Period to phase *data* by (default 1.0).
      shift : number, optional
          Phase shift to apply to phases (default 0.0).
      col : int, optional
          Column in *data* containing the time or phase values to be rephased
          (default 0).
      copy : bool, optional
          If True, a new array is returned, otherwise *data* is rephased
          in-place (default True).
  
      **Returns**
  
      rephased : array-like, shape = [n_samples, n_cols]
          Array containing the rephased *data*.
      """
      rephased = np.ma.array(data, copy=copy)
      rephased[:, col] = get_phase(rephased[:, col], period, shift)
  
      return rephased