def hard_predict(
        self,
        embeddings: np.ndarray,
    ) -> np.ndarray:
        """
        For each input, predict the most likely cluster it belongs to.

        Parameters
        ----------
        embeddings: np.ndarray
            Embeddings of inputs.

        Returns
        -------
        np.ndarray
            An array of bools determining whether an input is predicted to belong to a cluster or not.
            Exactly one True will be given for each input.
        """
        probs = self.predict_proba(embeddings=embeddings)

        bool_preds = np.zeros_like(probs, dtype=bool)
        bool_preds[np.arange(len(probs)), np.argmax(probs, axis=1)] = True
        return bool_preds

        For each input, predict the most likely cluster it belongs to.

        Parameters
        ----------
        embeddings: np.ndarray
            Embeddings of inputs.

        Returns
        -------
        np.ndarray
            An array of bools determining whether an input is predicted to belong to a cluster or not.
            Exactly one True will be given for each input.
        
fortuna/hallucination/grouping/clustering/base.py