code: def most_by_correct(self, y, is_correct):
          
          # mult=-1 when the is_correct flag is true -> when we want to display the most correct classes we will make a descending sorting (argsort) because we want that the biggest probabilities to be displayed first.
          # When is_correct is false, we want to display the most incorrect classes, so we want an ascending sorting since our interest is in the smallest probabilities.
          mult = -1 if is_correct==True else 1
          return self.most_by_mask(((self.preds == self.ds.y)==is_correct)
                                   & (self.ds.y == y), y, mult)
docs: Extracts the predicted classes which correspond to the selected class (y) and to the specific case (prediction is correct - is_true=True, prediction is wrong - is_true=False)
  
              Arguments:
                  y (int): the selected class
                  is_correct (boolean): a boolean flag (True, False) which specify the what to look for. Ex: True - most correct samples, False - most incorrect samples
  
              Returns:
                  idxs (numpy.ndarray): An array of indexes (numpy.ndarray)