2013-11-21 6 views
5

Ich versuche, meine Array wie dieseKomprimieren Array mit pytables

import numpy as np 
import tables 
from contextlib import closing 

FILTERS = tables.Filters(complib='zlib', complevel=5) 

data = np.zeros(10**7) 

with closing(tables.open_file('compressed', mode='w', filters=FILTERS)) as hdf: 
    hdf.create_array('/', 'array', obj=data) 

with closing(tables.open_file('uncompressed', mode='w')) as hdf: 
    hdf.create_array('/', 'array', obj=data) 

zu komprimieren, aber es funktioniert nicht bei allen

-rw-rw-r-- 1 user user 80002360 2013-11-21 15:27 compressed 
-rw-rw-r-- 1 user user 80002304 2013-11-21 15:28 uncompressed 

Mache ich etwas falsch hier?

Antwort

7

Arrays selbst können nicht komprimiert werden. Die Komprimierung erfordert Chunking und Sie müssen stattdessen entweder Chunked-Arrays (CArrays) oder erweiterbare Arrays (EArray) verwenden. Dies ist wahrscheinlich eine Änderung von einem Zeichen, da Sie nur die create_carray()-Methode anstelle der create_array()-Methode aufrufen möchten.

import numpy as np 
import tables 
from contextlib import closing 

FILTERS = tables.Filters(complib='zlib', complevel=5) 

data = np.zeros(10**7) 

with closing(tables.open_file('compressed', mode='w', filters=FILTERS)) as hdf: 
    hdf.create_carray('/', 'array', obj=data) 

with closing(tables.open_file('uncompressed', mode='w')) as hdf: 
    hdf.create_array('/', 'array', obj=data) 
+0

Vielen Dank für Ihre Antwort. Ich habe diesen Moment in Doc nicht beachtet. – qweqwegod

+0

Ich bin froh, dass ich helfen konnte! –