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