У меня был тот же вопрос, и я был разочарован, когда прочитал ответ Свена.Похоже, что numpy будет не хватать некоторых ключевых функций, если вы не можете иметь огромный массив в файле и работать над его небольшими частями одновременно.Кажется, ваш случай близок к одному из вариантов использования в оригинальной рациональной форме для создания формата .npy (см. http://svn.scipy.org/svn/numpy/trunk/doc/neps/npy-format.txt).
. Затем я наткнулся на numpy.lib.format, который, по-видимому, является полностью полезнымЯ не знаю, почему эта функциональность недоступна в пакете numpy root. Ключевое преимущество по сравнению с HDF5 заключается в том, что он поставляется с numpy.
>>> print numpy.lib.format.open_memmap.__doc__
"""
Open a .npy file as a memory-mapped array.
This may be used to read an existing file or create a new one.
Parameters
----------
filename : str
The name of the file on disk. This may not be a filelike object.
mode : str, optional
The mode to open the file with. In addition to the standard file modes,
'c' is also accepted to mean "copy on write". See `numpy.memmap` for
the available mode strings.
dtype : dtype, optional
The data type of the array if we are creating a new file in "write"
mode.
shape : tuple of int, optional
The shape of the array if we are creating a new file in "write"
mode.
fortran_order : bool, optional
Whether the array should be Fortran-contiguous (True) or
C-contiguous (False) if we are creating a new file in "write" mode.
version : tuple of int (major, minor)
If the mode is a "write" mode, then this is the version of the file
format used to create the file.
Returns
-------
marray : numpy.memmap
The memory-mapped array.
Raises
------
ValueError
If the data or the mode is invalid.
IOError
If the file is not found or cannot be opened correctly.
See Also
--------
numpy.memmap
"""