Там может быть более простой способ, но, как я знаю, вы бы поступили так:
import numpy as np
import tables
# Generate some data
x = np.random.random((100,100,100))
# Store "x" in a chunked array...
f = tables.open_file('test.hdf', 'w')
atom = tables.Atom.from_dtype(x.dtype)
ds = f.createCArray(f.root, 'somename', atom, x.shape)
ds[:] = x
f.close()
Если вы хотите указать используемое сжатие, взгляните на tables.Filters
. Э.Г.
import numpy as np
import tables
# Generate some data
x = np.random.random((100,100,100))
# Store "x" in a chunked array with level 5 BLOSC compression...
f = tables.open_file('test.hdf', 'w')
atom = tables.Atom.from_dtype(x.dtype)
filters = tables.Filters(complib='blosc', complevel=5)
ds = f.createCArray(f.root, 'somename', atom, x.shape, filters=filters)
ds[:] = x
f.close()
Вероятно, для многих из них есть более простой способ ... Я долгое время не использовал pytables
ни для чего, кроме табличных данных.
Примечание: с pytables 3.0, f.createCArray
было переименовано в f.create_carray
. Он также может принимать массив напрямую, без указания atom
,
f.create_carray('/', 'somename', obj=x, filters=filters)