[Numpy-discussion] numpy slices limited to 32 bit values?

Glenn Tarbox, PhD glenn at tarbox.org
Thu May 14 00:50:21 EDT 2009


I'm using the latest version of Sage (3.4.2) which is python 2.5 and numpy
something or other (I will do more digging presently)

I'm able to map large files and access all the elements unless I'm using
slices

so, for example:

fp = np.memmap("/mnt/hdd/data/mmap/numpy1e10.mmap", dtype='float64',
mode='r+', shape=(10000000000,))

which is 1e10 doubles if you don't wanna count the zeros

gives full access to a 75 GB memory image

But when I do:

fp[:] = 1.0
np.sum(fp)

I get 1410065408.0  as the result

Interestingly, I can do:

fp[9999999999] = 3.0

and get the proper result stored and can read it back.

So, it appears to me that slicing is limited to 32 bit values

Trying to push it a bit, I tried making my own slice

myslice = slice(1410065408, 9999999999)

and using it like
fp[myslice]=1.0

but it returns immediately having changed nothing.  The slice creation
"appears" to work in that I can get the values back out and all... but
inside numpy it seems to get thrown out.

My guess is that internally the python slice in 2.5 is 32 bit even on my 64
bit version of python / numpy.

The good news is that it looks like the hard stuff (i.e. very large mmaped
files) work... but slicing is, for some reason, limited to 32 bits.

Am I missing something?

-glenn

-- 
Glenn H. Tarbox, PhD ||  206-274-6919
http://www.tarbox.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20090513/294f169f/attachment.html>


More information about the NumPy-Discussion mailing list