code: def join(*vectors):
      r
      # check supplied arguments
      if len(vectors) < 2:
          return vectors[0]
  
      # process supplied arguments
      vectors = list(vectors)
      for i in range(len(vectors)):
          vectors[i] = numpy.array(vectors[i], copy=False)
          if vectors[i].ndim == 1:
              vectors[i] = numpy.array([vectors[i]], copy=False).T
      
      # treat single-value cases special (no squeezing)
      if 1 == len(vectors[0]):
          return numpy.concatenate(vectors, 1)
      
      return numpy.squeeze(numpy.concatenate(vectors, 1))
docs: r"""
      Takes an arbitrary number of aligned vectors of the same length and combines
      them into a single vector (vertically).
      
      E.g. taking two 100-sample feature vectors of once 5 and once 7 features, a 100x12
      feature vector is created and returned. 
      
      The feature vectors are expected to have the form samples*features i.e.::
      
              s1    s2    s3    [...]
          f1
          f2
          [...]
      
      Parameters
      ----------
      *vectors : sequences
          A number of vectors with the same number of samples.
      
      Returns
      -------
      vector : ndarray
          The combined vectors.