From 1ca943250b70891de7a55a3776c2580a040af1e9 Mon Sep 17 00:00:00 2001 From: Yujia Zheng Date: Wed, 20 May 2026 14:21:24 -0400 Subject: [PATCH] Fix NumPy scalar extraction in BIC scores --- causallearn/score/LocalScoreFunction.py | 4 ++-- causallearn/search/ScoreBased/DGES.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/causallearn/score/LocalScoreFunction.py b/causallearn/score/LocalScoreFunction.py index e2b7f25..3a5500f 100644 --- a/causallearn/score/LocalScoreFunction.py +++ b/causallearn/score/LocalScoreFunction.py @@ -84,7 +84,7 @@ def local_score_BIC(Data: ndarray, i: int, PAi: List[int], parameters=None) -> f XX_inv = np.linalg.inv(XX) except np.linalg.LinAlgError: XX_inv = np.linalg.pinv(XX) - sigma = float(cov[i, i] - yX @ XX_inv @ yX.T) + sigma = float((cov[i, i] - yX @ XX_inv @ yX.T).item()) if sigma <= 0: sigma = np.finfo(float).eps @@ -137,7 +137,7 @@ def local_score_BIC_from_cov( XX_inv = np.linalg.inv(XX) except np.linalg.LinAlgError: XX_inv = np.linalg.pinv(XX) - sigma = float(cov[i, i] - yX @ XX_inv @ yX.T) + sigma = float((cov[i, i] - yX @ XX_inv @ yX.T).item()) if sigma <= 0: sigma = np.finfo(float).eps diff --git a/causallearn/search/ScoreBased/DGES.py b/causallearn/search/ScoreBased/DGES.py index aa9e9e0..76d205a 100644 --- a/causallearn/search/ScoreBased/DGES.py +++ b/causallearn/search/ScoreBased/DGES.py @@ -110,7 +110,7 @@ def local_score_BIC_from_cov_deterministic(Data, i, PAi, parameters=None): XX_inv = np.linalg.inv(XX) except np.linalg.LinAlgError: XX_inv = np.linalg.pinv(XX) - sigma = float(cov[i, i] - yX @ XX_inv @ yX.T) + sigma = float((cov[i, i] - yX @ XX_inv @ yX.T).item()) if sigma <= 0: sigma = 0.0