docs: def correlate(self, signal):
          """
          Correlate records against one or many one-dimensional arrays.
  
          Parameters
          ----------
          signal : array-like
              One or more signals to correlate against.
          """
          s = asarray(signal)
  
          if s.ndim == 1:
              if size(s) != self.shape[-1]:
                  raise ValueError("Length of signal '%g' does not match record length '%g'"
                                   % (size(s), self.shape[-1]))
  
              return self.map(lambda x: corrcoef(x, s)[0, 1], index=[1])
  
          elif s.ndim == 2:
              if s.shape[1] != self.shape[-1]:
                  raise ValueError("Length of signal '%g' does not match record length '%g'"
                                   % (s.shape[1], self.shape[-1]))
              newindex = arange(0, s.shape[0])
              return self.map(lambda x: array([corrcoef(x, y)[0, 1] for y in s]), index=newindex)
  
          else:
              raise Exception('Signal to correlate with must have 1 or 2 dimensions')