[Spambayes-checkins] SF.net SVN: spambayes:[3232] trunk/spambayes/spambayes/optimize.py

montanaro at users.sourceforge.net montanaro at users.sourceforge.net
Tue Jan 27 13:31:50 CET 2009


Revision: 3232
          http://spambayes.svn.sourceforge.net/spambayes/?rev=3232&view=rev
Author:   montanaro
Date:     2009-01-27 12:31:49 +0000 (Tue, 27 Jan 2009)

Log Message:
-----------
Switch to numpy.  Hide the imports inside functions to get test to succeed
if numpy isn't installed.

Modified Paths:
--------------
    trunk/spambayes/spambayes/optimize.py

Modified: trunk/spambayes/spambayes/optimize.py
===================================================================
--- trunk/spambayes/spambayes/optimize.py	2009-01-27 12:30:50 UTC (rev 3231)
+++ trunk/spambayes/spambayes/optimize.py	2009-01-27 12:31:49 UTC (rev 3232)
@@ -5,11 +5,9 @@
 #
 import copy
 
-# XXX Numeric is obsolete.  Replace with numpy.
-import Numeric
-
 def SimplexMaximize(var, err, func, convcrit = 0.001, minerr = 0.001):
-    var = Numeric.array(var)
+    import numpy
+    var = numpy.array(var)
     simplex = [var]
     for i in range(len(var)):
         var2 = copy.copy(var)
@@ -32,14 +30,14 @@
         if abs(value[bi] - value[wi]) <= convcrit:
             return simplex[bi]
         # Calculate average of non-worst
-        ave = Numeric.zeros(len(var), 'd')
+        ave = numpy.zeros(len(var), dtype=numpy.float)
         for i in range(len(simplex)):
             if i != wi:
                 ave = ave + simplex[i]
         ave = ave / (len(simplex) - 1)
-        worst = Numeric.array(simplex[wi])
+        worst = numpy.array(simplex[wi])
         # Check for too-small simplex
-        simsize = Numeric.add.reduce(Numeric.absolute(ave - worst))
+        simsize = numpy.add.reduce(numpy.absolute(ave - worst))
         if simsize <= minerr:
             #print "Size of simplex too small:",simsize
             return simplex[bi]
@@ -66,6 +64,7 @@
         value[wi] = newv
 
 def DoubleSimplexMaximize(var, err, func, convcrit=0.001, minerr=0.001):
-    err = Numeric.array(err)
+    import numpy
+    err = numpy.array(err)
     var = SimplexMaximize(var, err, func, convcrit*5, minerr*5)
     return SimplexMaximize(var, 0.4 * err, func, convcrit, minerr)


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.


More information about the Spambayes-checkins mailing list