From b257377b180f8a4cd201e52bd9771dc4a452e2b0 Mon Sep 17 00:00:00 2001 From: jakobrunge Date: Wed, 16 Mar 2022 11:59:52 +0100 Subject: [PATCH] removed ValueError for constants in arrays --- setup.py | 2 +- tigramite/independence_tests/cmiknn.py | 24 ++++++++++++++-------- tigramite/independence_tests/gpdc.py | 12 +++++++---- tigramite/independence_tests/gpdc_torch.py | 12 +++++++---- tigramite/independence_tests/parcorr.py | 12 +++++++---- 5 files changed, 41 insertions(+), 21 deletions(-) diff --git a/setup.py b/setup.py index c7976818..5877c4ef 100644 --- a/setup.py +++ b/setup.py @@ -59,7 +59,7 @@ def run(self): # Run the setup setup( name="tigramite", - version="5.0.0.5", + version="5.0.0.6", packages=["tigramite", "tigramite.independence_tests", "tigramite.toymodels"], license="GNU General Public License v3.0", description="Tigramite causal discovery for time series", diff --git a/tigramite/independence_tests/cmiknn.py b/tigramite/independence_tests/cmiknn.py index 294ec660..e04f1c49 100644 --- a/tigramite/independence_tests/cmiknn.py +++ b/tigramite/independence_tests/cmiknn.py @@ -162,12 +162,16 @@ def _get_nearest_neighbors(self, array, xyz, knn): # Standardize array = array.astype(np.float64) array -= array.mean(axis=1).reshape(dim, 1) - array /= array.std(axis=1).reshape(dim, 1) + std = array.std(axis=1) + for i in range(dim): + if std[i] != 0.: + array[i] /= std[i] + # array /= array.std(axis=1).reshape(dim, 1) # FIXME: If the time series is constant, return nan rather than # raising Exception - if np.isnan(array).sum() != 0: - raise ValueError("nans after standardizing, " - "possibly constant array!") + # if np.isnan(array).sum() != 0: + # raise ValueError("nans after standardizing, " + # "possibly constant array!") elif self.transform == 'uniform': array = self._trafo2uniform(array) elif self.transform == 'ranks': @@ -376,12 +380,16 @@ def get_conditional_entropy(self, array, xyz): # Standardize array = array.astype(np.float64) array -= array.mean(axis=1).reshape(dim, 1) - array /= array.std(axis=1).reshape(dim, 1) + std = array.std(axis=1) + for i in range(dim): + if std[i] != 0.: + array[i] /= std[i] + # array /= array.std(axis=1).reshape(dim, 1) # FIXME: If the time series is constant, return nan rather than # raising Exception - if np.isnan(array).sum() != 0: - raise ValueError("nans after standardizing, " - "possibly constant array!") + # if np.isnan(array).sum() != 0: + # raise ValueError("nans after standardizing, " + # "possibly constant array!") elif self.transform == 'uniform': array = self._trafo2uniform(array) elif self.transform == 'ranks': diff --git a/tigramite/independence_tests/gpdc.py b/tigramite/independence_tests/gpdc.py index 375d4f15..fc7812e6 100644 --- a/tigramite/independence_tests/gpdc.py +++ b/tigramite/independence_tests/gpdc.py @@ -212,10 +212,14 @@ def _get_single_residuals(self, array, target_var, # Standardize if standardize: array -= array.mean(axis=1).reshape(dim, 1) - array /= array.std(axis=1).reshape(dim, 1) - if np.isnan(array).sum() != 0: - raise ValueError("nans after standardizing, " - "possibly constant array!") + std = array.std(axis=1) + for i in range(dim): + if std[i] != 0.: + array[i] /= std[i] + # array /= array.std(axis=1).reshape(dim, 1) + # if np.isnan(array).sum() != 0: + # raise ValueError("nans after standardizing, " + # "possibly constant array!") target_series = array[target_var, :] z = np.fastCopyAndTranspose(array[2:]) diff --git a/tigramite/independence_tests/gpdc_torch.py b/tigramite/independence_tests/gpdc_torch.py index 01925660..3efacb8c 100644 --- a/tigramite/independence_tests/gpdc_torch.py +++ b/tigramite/independence_tests/gpdc_torch.py @@ -217,10 +217,14 @@ def _get_single_residuals(self, array, target_var, # Standardize if standardize: array -= array.mean(axis=1).reshape(dim, 1) - array /= array.std(axis=1).reshape(dim, 1) - if np.isnan(array).any(): - raise ValueError("Nans after standardizing, " - "possibly constant array!") + std = array.std(axis=1) + for i in range(dim): + if std[i] != 0.: + array[i] /= std[i] + # array /= array.std(axis=1).reshape(dim, 1) + # if np.isnan(array).any(): + # raise ValueError("Nans after standardizing, " + # "possibly constant array!") target_series = array[target_var, :] z = np.fastCopyAndTranspose(array[2:]) diff --git a/tigramite/independence_tests/parcorr.py b/tigramite/independence_tests/parcorr.py index 0d948fae..8a55a337 100644 --- a/tigramite/independence_tests/parcorr.py +++ b/tigramite/independence_tests/parcorr.py @@ -91,10 +91,14 @@ def _get_single_residuals(self, array, target_var, # Standardize if standardize: array -= array.mean(axis=1).reshape(dim, 1) - array /= array.std(axis=1).reshape(dim, 1) - if np.isnan(array).sum() != 0: - raise ValueError("nans after standardizing, " - "possibly constant array!") + std = array.std(axis=1) + for i in range(dim): + if std[i] != 0.: + array[i] /= std[i] + # array /= array.std(axis=1).reshape(dim, 1) + # if np.isnan(array).sum() != 0: + # raise ValueError("nans after standardizing, " + # "possibly constant array!") y = array[target_var, :]