code: def submatrix(dmat, indices_col, n_neighbors):
      
      n_samples_transform, n_samples_fit = dmat.shape
      submat = np.zeros((n_samples_transform, n_neighbors), dtype=dmat.dtype)
      for i in numba.prange(n_samples_transform):
          for j in numba.prange(n_neighbors):
              submat[i, j] = dmat[i, indices_col[i, j]]
      return submat
docs: Return a submatrix given an orginal matrix and the indices to keep.
  
      Parameters
      ----------
      mat: array, shape (n_samples, n_samples)
          Original matrix.
  
      indices_col: array, shape (n_samples, n_neighbors)
          Indices to keep. Each row consists of the indices of the columns.
  
      n_neighbors: int
          Number of neighbors.
  
      Returns
      -------
      submat: array, shape (n_samples, n_neighbors)
          The corresponding submatrix.