code: def build_columns(self, X, term=-1, verbose=False):
          
          if term == -1:
              term = range(len(self._terms))
          term = list(np.atleast_1d(term))
  
          columns = []
          for term_id in term:
              columns.append(self._terms[term_id].build_columns(X, verbose=verbose))
          return sp.sparse.hstack(columns, format='csc')
docs: construct the model matrix columns for the term
  
          Parameters
          ----------
          X : array-like
              Input dataset with n rows
  
          verbose : bool
              whether to show warnings
  
          Returns
          -------
          scipy sparse array with n rows