[Python-modules-team] Bug#564774: python-numpy: savez() does _not_ compress

Michael Hanke michael.hanke at gmail.com
Mon Jan 11 21:15:58 UTC 2010

Package: python-numpy
Version: 1:1.3.0-3
Severity: normal


the docs of the savez() function say:

| Save several arrays into a single, compressed file with extension ".npz"

However, that is not the case. Here is a short dump of an IPython
session to show it:

>>> import numpy as np
>>> np.savez('test.npz', N.ones((10000, 1000)))
>>> ll -h *.npz
-rw-r--r-- 1 michael michael 77M 2010-01-11 15:52 test.npz
>>> !gzip test.npz
>>> ll -h test*.gz
-rw-r--r-- 1 michael michael 114K 2010-01-11 15:52 test.npz.gz

If I want to load my "hand-compressed", renamed to have .npz extension,
file I get this (2 attempts):

In [1]: N.load('test.npz')
IOError                                   Traceback (most recent call last)

/tmp/<ipython console> in <module>()

/usr/lib/python2.5/site-packages/numpy/lib/io.pyc in load(file, mmap_mode)
    199         except:
    200             raise IOError, \
--> 201                 "Failed to interpret file %s as a pickle" % repr(file)
    203 def save(file, arr):

IOError: Failed to interpret file 'test.npz' as a pickle

In [3]: import gzip

In [4]: N.load(gzip.open('test.npz'))
IOError                                   Traceback (most recent call last)

/tmp/<ipython console> in <module>()

/usr/lib/python2.5/site-packages/numpy/lib/io.pyc in load(file, mmap_mode)
    188     fid.seek(-N,1) # back-up
    189     if magic.startswith(_ZIP_PREFIX):  # zip-file (assume .npz)
--> 190         return NpzFile(fid)
    191     elif magic == format.MAGIC_PREFIX: # .npy file
    192         if mmap_mode:

/usr/lib/python2.5/site-packages/numpy/lib/io.pyc in __init__(self, fid)
     83         # component of the so-called standard library.
     84         import zipfile
---> 85         _zip = zipfile.ZipFile(fid)
     86         self._files = _zip.namelist()
     87         self.files = []

/usr/lib/python2.5/zipfile.pyc in __init__(self, file, mode, compression, allowZip64)
    345         if key == 'r':
--> 346             self._GetContents()
    347         elif key == 'w':
    348             pass

/usr/lib/python2.5/zipfile.pyc in _GetContents(self)
    364         is bad."""
    365         try:
--> 366             self._RealGetContents()
    367         except BadZipfile:
    368             if not self._filePassed:

/usr/lib/python2.5/zipfile.pyc in _RealGetContents(self)
    374         """Read in the table of contents for the ZIP file."""
    375         fp = self.fp
--> 376         endrec = _EndRecData(fp)
    377         if not endrec:
    378             raise BadZipfile, "File is not a zip file"

/usr/lib/python2.5/zipfile.pyc in _EndRecData(fpin)
    131     The data is a list of the nine items in the ZIP "End of central dir"
    132     record followed by a tenth item, the file seek offset of this record."""
--> 133     fpin.seek(-22, 2)               # Assume no archive comment.
    134     filesize = fpin.tell() + 22     # Get file size
    135     data = fpin.read()

/usr/lib/python2.5/site-packages/numpy/lib/io.pyc in seek(self, offset, whence)
     37         if whence not in [0, 1]:
---> 38             raise IOError, "Illegal argument"
     40         if offset < self.offset:

IOError: Illegal argument



-- System Information:
Debian Release: squeeze/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: i386 (i686)

Kernel: Linux 2.6.31-1-686 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages python-numpy depends on:
ii  libatlas3gf-base [liblapack. 3.6.0-24    Automatically Tuned Linear Algebra
ii  libblas3gf [libblas.so.3gf]  1.2-2       Basic Linear Algebra Subroutines 3
ii  libc6                        2.10.2-2    GNU C Library: Shared libraries
ii  libgcc1                      1:4.4.2-3   GCC support library
ii  libgfortran3                 4.4.2-3     Runtime library for GNU Fortran ap
ii  liblapack3gf [liblapack.so.3 3.2.1-2     library of linear algebra routines
ii  python                       2.5.4-2     An interactive high-level object-o
ii  python-central               0.6.14+nmu2 register and build utility for Pyt

python-numpy recommends no packages.

Versions of packages python-numpy suggests:
ii  python-nose                   0.11.1-1   test discovery and running for Pyt
pn  python-numpy-dbg              <none>     (no description available)
pn  python-numpy-doc              <none>     (no description available)

-- no debconf information

More information about the Python-modules-team mailing list