首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在PyTables中存储数值多维数组?

如何在PyTables中存储数值多维数组?
EN

Stack Overflow用户
提问于 2012-01-13 06:10:27
回答 1查看 21.3K关注 0票数 18

如何使用PyTables将数值多维数组放入HDF5文件中?

据我所知,我不能将数组字段放入pytables表中。

我还需要存储有关此数组的一些信息,以便能够对其进行数学计算。

有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-13 06:45:59

也许有一种更简单的方法,但据我所知,这就是你要做的:

代码语言:javascript
复制
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。例如。

代码语言:javascript
复制
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

代码语言:javascript
复制
f.create_carray('/', 'somename', obj=x, filters=filters)
票数 33
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8843062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档