[Numpy-discussion] memory-mapped Numeric arrays: arrayfrombuffer version 2
kragen at pobox.com
Wed Jan 23 22:24:08 CST 2002
I would be very happy if this got included in the
Numpy distribution, so that people don't have to do an extra
download to get this facility. I just submitted it as a patch
on SourceForge, but my browser failed to upload the file.
There is one thing in arrayfrombuffer.c I'm not sure about, and
I could use some help here. arrayobj is the return value from
/* do I need to incref arrayobj?! fromstring does... */
So, do I? Or not? It seems to work as it is.
Following is the announcement I posted to comp.lang.python and (hopefully)
The 'arrayfrombuffer' package features support for Numerical Python
arrays whose contents are stored in buffer objects, including
memory-mapped files. This has the following advantages:
- loading your array from a file is easy --- a module import and a
single function call --- and doesn't use excessive amounts of
- loading your array is quick; it doesn't need to be copied from one
part of memory to another in order to be loaded.
- your array gets demand-loaded; parts you aren't using don't need to
be in memory or in swap.
- under memory-pressure conditions, your array doesn't use up swap,
and parts of it you haven't modified can be evicted from RAM without
the need for a disk write
- your arrays can be bigger than your physical memory
- when you modify your array, only the parts you modify get written
back out to disk
This is something that's been requested on the Numpy list a few times
a year since 1999.
arrayfrombuffer lives at
The current version is version 2; it is released under the X11 license
(the BSD license without the advertising clause).
More information about the Numpy-discussion