2013-11-21 2 views
5

Я пытаюсь сжать мой массив как этотсжатия массива с 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) 

, но он не работает на всех

-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 

Могу ли я сделать что-то здесь не так?

ответ

7

Массивы не могут быть сжаты. Для сжатия требуется chunking, поэтому вы должны либо использовать chunked массивы (CArrays), либо расширяемые массивы (EArray). Вероятно, это изменение 1 символа, так как вы просто хотите вызвать метод create_carray() вместо метода create_array().

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

Благодарим за ответ. Я не обращал внимания на этот момент в доке. – qweqwegod

+0

Рад, что я мог помочь! –

 Смежные вопросы

  • Нет связанных вопросов^_^