OverflowError: math range error...

Sheldon shejo284 at gmail.com
Fri Jun 23 03:40:34 EDT 2006


Thanks for the tips!
I am going to look into this some more. I am not used to using Numeric
and the logical functions. I didn't think about what you pointed out
and somewhere the returned values from these logical methods are not
what I expect.  I will rewrite the whole thing using alltrue instead.

/Sheldon

Robert Kern skrev:

> Sheldon wrote:
> > Hi,
> >
> > I have a written a script that will check to see if the divisor is zero
> > before executing but python will not allow this:
> >
> > if statistic_array[0:4] > 0.0:
> > statistic_array[0,0:4] =
> > int(multiply(divide(statistic_array[0,0:4],statistic_array \
> > [0,4]),10000.0))/100.0
> >
> > Does anyone know why Python is complaining:
> >
> > "statistic_array[0,0:4] =
> > int(multiply(divide(statistic_array[0,0:4],statistic_array[0,4]),10000.0))/100.0
> >
> > OverflowError: math range error"
> >
> > and how do I get around this problem? This stupid because there is a if
> > statement preventing this "dividing by zero".
>
> What kind of arrays are you using? If it's Numeric (and I think it is because
> numarray and numpy would throw an error at the if: statement), then your test is
> incorrect.
>
> Comparisons yield arrays of boolean values. When a Numeric boolean array is used
> as a truth value (like in an if: statement), then it will return True is *any*
> of the values are True. Use Numeric.alltrue(statistic_array[:4] > 0.0) instead.
>
> Both numarray and numpy throw an exception when one attempts to use arrays as
> truth values since the desired meaning (alltrue or sometrue) is ambiguous.
>
> --
> Robert Kern
>
> "I have come to believe that the whole world is an enigma, a harmless enigma
>   that is made terrible by our own mad attempt to interpret it as though it had
>   an underlying truth."
>    -- Umberto Eco




More information about the Python-list mailing list