[SciPy-user] Save a list of arrays

Lev Givon lev@columbia....
Wed Apr 22 08:43:28 CDT 2009


Received from Mathieu Dubois on Wed, Apr 22, 2009 at 09:09:20AM EDT:
> [I have posted this message this morning but apparently it is stuck 
> somewhere - sorry for multi-posting]
> 
> Hello,
> 
> I would like to save a list of arrays (each one has a different shape) 
> to a file.
> For instance:
>  >>> array1 = numpy.ones(2);
>  >>> array2 = numpy.ones(5);
>  >>> array3 = numpy.ones(1000);
>  >>> list = [array1, array2, array3]
> 
> As my arrays are huge (each one contains several thousands values) I 
> would like a compressed file.
> numpy.savez would be perfect (because it produces an archive of binary 
> files) but unfortunately numpy.savez(list) doesn't work because savez 
> needs each array individually.
> 
> So what's the best way to do that?
> 
> Maybe I could create an archive file in Python (using ZipFile) save each 
> array in a npy file and then write each file in the archive. But then, 
> will numpy.load be able to open the file?
> 
> Any help appreciated.
> Kind regards,
> Mathieu

You might find hdf5pickle useful:

http://www.elisanet.fi/ptvirtan/software/hdf5pickle

(If you would like a compressed file, you can specify a compression
filter when creating the HDF5 file in which to store your data.)

							L.G.


More information about the SciPy-user mailing list