[Numpy-discussion] OverflowError: long too big to convert

Robert Kern robert.kern at gmail.com
Tue May 1 10:43:31 EDT 2007


Mark.Miller wrote:
> Can someone explain this?  I can't seem to coerce numpy into storing 
> large integer values.  I'm sure that I'm just overlooking something 
> simple...
> 
> 
>  >>> import numpy
>  >>> a='1'*300
>  >>> type(a)
> <type 'str'>
>  >>> b=int(a)
>  >>> type(b)
> <type 'long'>
>  >>> c=numpy.empty((2,2),long)
>  >>> c[:]=b
> Traceback (most recent call last):
>    File "<pyshell#15>", line 1, in <module>
>      c[:]=b
> OverflowError: long too big to convert
>  >>>

Use object arrays explicitly:

  c = numpy.empty((2, 2), dtype=object)

Using dtype=long gets interpreted as requesting the largest available integer
type (or maybe just int64, I'm not sure). Those aren't unbounded.

-- 
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 NumPy-Discussion mailing list