[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