Python: ¿cómo almacenar una matriz multidimensional numpy en PyTables?
arrays multidimensional-array (1)
Puede haber una forma más simple, pero así es como lo harías, por lo que sé:
import numpy as np
import tables
# Generate some data
x = np.random.random((100,100,100))
# Store "x" in a chunked array...
f = tables.openFile(''test.hdf'', ''w'')
atom = tables.Atom.from_dtype(x.dtype)
ds = f.createCArray(f.root, ''somename'', atom, x.shape)
ds[:] = x
f.close()
Si desea especificar la compresión a utilizar, eche un vistazo a las tables.Filters
. tables.Filters
. P.ej
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.openFile(''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()
Probablemente haya una forma más sencilla para mucho de esto ... No he usado pytables
para otra cosa que no sean datos de tipo tabla durante mucho tiempo.
Nota: con pytables 3.0, f.createCArray
fue renombrado a f.create_carray
. También puede aceptar la matriz directamente, sin especificar el atom
,
f.create_carray(''/'', ''somename'', obj=x, filters=filters)
¿Cómo puedo poner una matriz multidimensional numpy en un archivo HDF5 usando PyTables?
Por lo que puedo decir, no puedo poner un campo de matriz en una tabla de pytables.
También necesito almacenar algo de información sobre esta matriz y poder realizar cálculos matemáticos en ella.
¿Alguna sugerencia?