code: def partition(self, dimension):
          
          # Take leftmost 'dimension' input basis vectors
          for i, channel in enumerate(self.u):
              if self.v[i].shape[1] < dimension:
                  raise IndexError('Channel is max dimension %s'
                                   % self.v[i].shape[1])
              self.data[i] = channel[:, 0:dimension]
          self.dimension = dimension
          return self
docs: Partition subspace into desired dimension.
  
          :type dimension: int
          :param dimension: Maximum dimension to use.