[Scipy-svn] r7100 - trunk/scipy/stats

scipy-svn at scipy.org scipy-svn at scipy.org
Sat Jan 29 15:17:35 EST 2011


Author: warren.weckesser
Date: 2011-01-29 14:17:35 -0600 (Sat, 29 Jan 2011)
New Revision: 7100

Modified:
   trunk/scipy/stats/morestats.py
   trunk/scipy/stats/mstats_basic.py
   trunk/scipy/stats/mstats_extras.py
   trunk/scipy/stats/stats.py
Log:
ENH: stats: Don't use plain assert for argument validation.

Modified: trunk/scipy/stats/morestats.py
===================================================================
--- trunk/scipy/stats/morestats.py	2011-01-29 19:17:31 UTC (rev 7099)
+++ trunk/scipy/stats/morestats.py	2011-01-29 20:17:35 UTC (rev 7100)
@@ -72,7 +72,7 @@
 ##  Returns alpha confidence interval for the mean, variance,
 ##      and std.
 
-def bayes_mvs(data,alpha=0.90):
+def bayes_mvs(data, alpha=0.90):
     """Return Bayesian confidence intervals for the mean, var, and std.
 
     Assumes 1-d data all has same mean and variance and uses Jeffrey's prior
@@ -89,8 +89,10 @@
     """
     x = ravel(data)
     n = len(x)
-    assert(n > 1)
-    assert(alpha < 1 and alpha > 0)
+    if n < 2:
+        raise ValueError("data must contain at least two values.")
+    if alpha >= 1 or alpha <= 0:
+        raise ValueError("0 < alpha < 1 is required, but alpha=%s was given." % alpha)
     n = float(n)
     if (n > 1000): # just a guess.  The curves look very similar at this point.
         return _gauss_mvs(x, n, alpha)
@@ -533,10 +535,11 @@
         a = zeros(N,'f')
         init = 0
     else:
-        assert(len(a) == N/2), "a must be == len(x)/2"
+        if len(a) != N//2:
+            raise ValueError("len(a) must equal len(x)/2")
         init = 1
     y = sort(x)
-    a,w,pw,ifault = statlib.swilk(y,a[:N/2],init)
+    a, w, pw, ifault = statlib.swilk(y, a[:N//2], init)
     if not ifault in [0,2]:
         warnings.warn(str(ifault))
     if N > 5000:

Modified: trunk/scipy/stats/mstats_basic.py
===================================================================
--- trunk/scipy/stats/mstats_basic.py	2011-01-29 19:17:31 UTC (rev 7099)
+++ trunk/scipy/stats/mstats_basic.py	2011-01-29 20:17:35 UTC (rev 7100)
@@ -1286,7 +1286,8 @@
         shp = a.shape
         return _trimmed_stde_1D(a.ravel(),lolim,uplim,loinc,upinc)
     else:
-        assert a.ndim <= 2, "Array should be 2D at most !"
+        if a.ndim > 2:
+            raise ValueError("Array 'a' must be at most two dimensional, but got a.ndim = %d" % a.ndim)
         return ma.apply_along_axis(_trimmed_stde_1D, axis, a,
                                    lolim,uplim,loinc,upinc)
 
@@ -1534,7 +1535,8 @@
     if (axis is None):
         return _stdemed_1D(data)
     else:
-        assert data.ndim <= 2, "Array should be 2D at most !"
+        if data.ndim > 2:
+            raise ValueError("Array 'data' must be at most two dimensional, but got data.ndim = %d" % data.ndim)
         return ma.apply_along_axis(_stdemed_1D, axis, data)
 
 #####--------------------------------------------------------------------------

Modified: trunk/scipy/stats/mstats_extras.py
===================================================================
--- trunk/scipy/stats/mstats_extras.py	2011-01-29 19:17:31 UTC (rev 7099)
+++ trunk/scipy/stats/mstats_extras.py	2011-01-29 20:17:35 UTC (rev 7100)
@@ -92,7 +92,8 @@
     if (axis is None) or (data.ndim == 1):
         result = _hd_1D(data, p, var)
     else:
-        assert data.ndim <= 2, "Array should be 2D at most !"
+        if data.ndim > 2:
+            raise ValueError("Array 'data' must be at most two dimensional, but got data.ndim = %d" % data.ndim)
         result = ma.apply_along_axis(_hd_1D, axis, data, p, var)
     #
     return ma.fix_invalid(result, copy=False)
@@ -162,7 +163,8 @@
     if (axis is None):
         result = _hdsd_1D(data, p)
     else:
-        assert data.ndim <= 2, "Array should be 2D at most !"
+        if data.ndim > 2:
+            raise ValueError("Array 'data' must be at most two dimensional, but got data.ndim = %d" % data.ndim)
         result = ma.apply_along_axis(_hdsd_1D, axis, data, p)
     #
     return ma.fix_invalid(result, copy=False).ravel()
@@ -236,7 +238,8 @@
         return mj
     #
     data = ma.array(data, copy=False)
-    assert data.ndim <= 2, "Array should be 2D at most !"
+    if data.ndim > 2:
+        raise ValueError("Array 'data' must be at most two dimensional, but got data.ndim = %d" % data.ndim)
     p = np.array(prob, copy=False, ndmin=1)
     # Computes quantiles along axis (or globally)
     if (axis is None):
@@ -305,7 +308,8 @@
     if (axis is None):
         result = _cihs_1D(data.compressed(), alpha)
     else:
-        assert data.ndim <= 2, "Array should be 2D at most !"
+        if data.ndim > 2:
+            raise ValueError("Array 'data' must be at most two dimensional, but got data.ndim = %d" % data.ndim)
         result = ma.apply_along_axis(_cihs_1D, axis, data, alpha)
     #
     return result

Modified: trunk/scipy/stats/stats.py
===================================================================
--- trunk/scipy/stats/stats.py	2011-01-29 19:17:31 UTC (rev 7099)
+++ trunk/scipy/stats/stats.py	2011-01-29 20:17:35 UTC (rev 7100)
@@ -3490,7 +3490,8 @@
     .. [1] http://en.wikipedia.org/wiki/Kruskal-Wallis_one-way_analysis_of_variance
 
     """
-    assert len(args) >= 2, "Need at least 2 groups in stats.kruskal()"
+    if len(args) < 2:
+        raise ValueError("Need at least two groups in stats.kruskal()")
     n = map(len,args)
     all = []
     for i in range(len(args)):




More information about the Scipy-svn mailing list