From 84e4a40df2e86d8665ccc4958e9bd2cff10fd170 Mon Sep 17 00:00:00 2001 From: Osvaldo A Martin Date: Sat, 18 May 2024 11:53:11 -0300 Subject: [PATCH] improve x_val (#440) * improve x_val, find_ppf * improve x_val --- preliz/distributions/distributions.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/preliz/distributions/distributions.py b/preliz/distributions/distributions.py index 05d93194..2cfd7fcb 100644 --- a/preliz/distributions/distributions.py +++ b/preliz/distributions/distributions.py @@ -601,8 +601,11 @@ def xvals(self, support, n_points=1000): n_points : int Number of values to return. """ + half_n_points = int(n_points / 2) + if isinstance(support, tuple): - return self.ppf(np.linspace(*self.cdf(support), n_points)) + even = np.linspace(*support, n_points) + uneven = self.ppf(np.linspace(*self.cdf(support), n_points)) else: lower_ep, upper_ep = self.support @@ -611,11 +614,10 @@ def xvals(self, support, n_points=1000): if not np.isfinite(upper_ep) or support == "restricted": upper_ep = 0.9999 - half_n_points = int(n_points / 2) even = np.linspace(*self.ppf([lower_ep, upper_ep]), half_n_points) uneven = self.ppf(np.linspace(lower_ep, upper_ep, half_n_points)) - return np.sort(np.concatenate([even, uneven])) + return np.sort(np.concatenate([even, uneven])) def _fit_mle(self, sample, **kwargs): """