当前位置: 首页 > 面试题库 >

Python:如何在PyTables中存储一个Numpy多维数组?

傅涵忍
2023-03-14
问题内容

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

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

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

有什么建议?


问题答案:

可能有一种更简单的方法,但是据我所知,这就是您要做的事情:

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)


 类似资料:
  • 问题内容: 我在用PyTables存储numpy csr_matrix时遇到问题。我收到此错误: 我的代码: 有任何想法吗? 谢谢 问题答案: 一个CSR矩阵可以从它的完全重建,和属性。这些只是常规的numpy数组,因此将它们作为3个单独的数组存储在pytables中,然后将它们传递回的构造函数应该没有问题。请参阅scipy文档。 编辑: Pietro的答案已指出该成员也应存储

  • 问题内容: 如果我们有一个numpy数组,例如: 我们想要设置一个元素,另一个元素 我们该怎么做? 将数组的第一个维度的每个元素设置为5 问题答案: 使用as作为数据数组和索引数组,以便每一行对应于要在数据数组中设置的一个元素,您可以执行以下操作- 样品运行- 或者,我们可以使用计算线性索引,然后使用进行赋值,就像这样- 如果您要处理三维数组,我们可以对三维索引进行切片,然后分配具有另一种方法,如

  • 问题内容: 例如我有2个数组 我怎么能 和这样我得到 ? 问题答案: 您可以使用dstack: 如果必须有元组: 对于Python 3+,您需要扩展iterator对象。请注意,这是非常低效的:

  • 本文向大家介绍python numpy 一维数组转变为多维数组的实例,包括了python numpy 一维数组转变为多维数组的实例的使用技巧和注意事项,需要的朋友参考一下 如下所示: 借助numpy库; 以上这篇python numpy 一维数组转变为多维数组的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 问题内容: 我已经阅读了许多有关 多维到单维 , 多维数据库 等的文章,但是所有答案都无济于事。我确实在Google上找到了很多文档,但是这些文档仅提供背景信息,而没有回答眼前的问题。 我有很多彼此相关的字符串。PHP脚本中需要它们。该结构是分层的。这是一个例子。 每个缩进在多维数组中都假定一个新级别。 目的是通过名称及其所有后代检索具有PHP的元素。例如,如果我查询A,我想接收一个包含的字符串数

  • 问题内容: 我想创建一个像堆栈溢出这样的问答应用程序。 我不知道如何在MySQL表列中存储多个答案。 我想知道如何在sql表的同一行中存储问题和多个答案。 问题答案: 创建两个表并使用外键关系将它们连接是最好的解决方案之一。因为将问题和答案保存在同一表格中可能不会使您对同一问题有多个答案。如果您希望一个问题有多个答案,那么数据库的冗余肯定会增加。因此,请尝试正确使用DB- Relationship