docs: def _create_L_ind(self, L):
          """Convert T label matrices with labels in 0...K_t to a one-hot format
  
          Here we can view e.g. the $(i,j)$ entries of the $T$ label matrices as
          a _label vector_ emitted by LF j for data point i.
  
          Args:
              L: a T-length list of [n,m] scipy.sparse label matrices with values
                  in {0,1,...,k}
  
          Returns:
              L_ind: An [n,m*k] dense np.ndarray with values in {0,1}
  
          Note that no column is required for 0 (abstain) labels.
          """
          # TODO: Update LabelModel to keep L, L_ind, L_aug as sparse matrices
          # throughout and remove this line.
          if issparse(L[0]):
              L = [L_t.todense() for L_t in L]
  
          # Make sure converted to numpy here
          L = self._to_numpy(L)
  
          L_ind = np.ones((self.n, self.m * self.k))
          for yi, y in enumerate(self.task_graph.feasible_set()):
              for t in range(self.t):
                  # A[x::y] slices A starting at x at intervals of y
                  # e.g., np.arange(9)[0::3] == np.array([0,3,6])
                  L_ind[:, yi :: self.k] *= np.where(
                      np.logical_or(L[t] == y[t], L[t] == 0), 1, 0
                  )
  
              # Set LFs that abstained on all feasible label vectors to all 0s
              L_ind[:, yi :: self.k] *= np.where(sum(L) != 0, 1, 0)
  
          return L_ind