问题标签 [pytables]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2136 浏览

python - 将numpy记录数组的字段格式检索为列表

我正在尝试规范化 pytable 和 recarray 的格式,以便将 recarray 附加到 pytable。为此,我需要从recarray 中获取字段信息(即名称和字段格式),我可以使用以下方法轻松获取recarray 名称列表:

但还没有找到对应的属性。recarray dtypes 属性返回名称和格式的元组列表,但无法遍历此列表以检索格式。这似乎是非标准的,因为我能够遍历其他元组列表以获得特定的元组项。例如,以下代码显示了对数组和recarray 的迭代,并尝试对recarray 的dtype 的元组列表进行迭代:

这段代码的打印输出(如下所示)表明我可以:1)遍历一个元组列表;
2) 遍历一个recarray;3) 将记录数组的 dtype 检索为明显的元组列表;
4) 从recarray 中检索名称 5) 检索recarray 的一个字段的格式

但我不能:

6) 遍历 recarray dtype 以检索每个字段的格式 7) 遍历作为数组转换的 recarray dtype 以检索每个字段的格式

输出是:

有谁知道如何从记录数组中检索字段格式作为列表?

0 投票
1 回答
68 浏览

python - 如何从表中确定 pytables 文件名

我有一个应用程序,我在其中传递一个表实例(或“节点”)。我需要知道沿途某些地方的父文件的文件名。我似乎找不到一个内置的方法来返回它。可能吗?

例如,我正在寻找下面的“get_parent_file”功能:

0 投票
2 回答
2849 浏览

python - 用于数据分析和学习的Python包推荐

我想在文章发布平台之上构建一个分析引擎。更具体地说,我想跟踪用户的阅读行为(例如文章的浏览次数、打开文章所花费的时间、评分等),以及文章本身的统计信息(例如段落数、作者等) )。

这将有两个目的:

  1. 提供有关用户和文章的见解
  2. 向用户提供建议

对于数据分析部分,我一直在研究cubespandaspytables。数据很多,存储在 MySQL 表中;我不确定这些软件包中的哪一个会更好地处理这样的后端。

对于推荐部分,我只是考虑将数据从数据分析引擎提供给聚类模型。

关于如何将所有这些放在一起的任何建议,以及可以帮助我的很酷的 python 项目?如果我应该提供更多信息,请告诉我。

谢谢

0 投票
1 回答
266 浏览

dataset - 使用 Pandas + PyTables 管理和处理数据集的设计策略

作为 numpy 的普通用户,我爱上了 Pandas 的语法和概念,并开始阅读 PyTables,它看起来非常健壮且面向性能。

我的主要疑问是:

  • 如果我要使用由 Pandas + PyTables 组成的自制框架,应该将数据处理管道的哪一层(数据导入、转换、分析、存储、检索)委托给每一层?
  • Pandas 的天赋是什么,它与 PyTables 的天赋有什么关系,它们的天赋有什么关系?
  • 它们是正交/互补/独立,还是以某种方式重叠功能?
  • 它们如何彼此区分开来?

谢谢你的光!

0 投票
1 回答
1302 浏览

python - 优化 pytables/HDF5 的 chunkshape 参数以读取整列

我试图通过chunkshape在创建表时指定来提高我的 pytables/HDF5 代码的性能。我无法弄清楚chunkshape参数的真实尺寸或格式。我可以从代码中看到,它最终会成为一个包含单个元素的元组。

这个单个元素应该是行数、字节数还是什么?

我的具体问题是我现有的代码可以创建一个包含 20 列的 HDF5 表。我想更改表的块,以便每列连续存储在磁盘上。因此,优化一次读取整个列。

我尝试将 chunkshape 设置为 20(列数),但这大大降低了读取整列的性能。是否应该将块形状设置为单行的宽度(以字节为单位)?

我只想知道如果出现以下情况,chunkshape 应该是什么:

  1. 我想尽可能快地阅读整个专栏。
  2. 我确切地知道表中有多少列。
  3. 出于向后兼容的原因,我不能简单地将表更改为将现有行作为列,反之亦然。
0 投票
1 回答
258 浏览

python - 从 numpy zero recarray 创建/附加时,额外的记录出现在 pytable 表中

(本题已被原作者修改,示例代码已修改,以便您可以在自己的机器上运行)

我正在将时间序列数据加载到 pytables 中(在这个测试用例中,大约 200 万行,23 列主要是浮点值)。我还想在同一个 pytable 文件中创建一个相应的表,该表具有相同的行数和列数以及列名,但使用 int8 数据类型作为质量控制“掩码”。为此,我从数据表中检索列名和行计数信息,并使用它来创建用于创建/附加到质量控制 pytable 表的 numpy 零记录数组。

当我将 numpy 零记录数组附加到新的“掩码”pytable 时,就会出现问题。即使用于创建/附加到 pytable 的 numpy 零记录数组是正确的大小 - 生成的 pytable 比预期的要大得多 - pytable 中的更多行然后已从 numpy recarray 附加。

以下可运行的示例代码演示了该问题。它创建了一个 pytable 并将 numpy 零重新数组附加到表中,期望创建一个表,其中包含“nrows”的零值记录。使用 Vitables 查看时,生成的 pytable 的行数比预期的多

我不确定这些额外的数据行来自哪里?任何建议,将不胜感激。

使用 python 2.7.2、pytables 2.3.1、numpy 1.6.1.1

以下是将 numpy 零重新数组写入质量控制 pytable 时创建的打印语句输出。

0 投票
0 回答
50 浏览

python - 尝试使用 PyTables 删除 hdf5 文件中的值,但文件大小没有缩小

可能重复:
从 HDF5 文件中删除数据

我有一个 hdf5 文件,其中包含一个组结构,如:

我想遍历这个,并删除“其他字段”。我通过这条线实现了这一点

h5file.removeNode(db, field_name, recursive=True) 其中 db 是“Some name of some db”的对象,字段名称是字符串“Some other field”。

当我刷新并保存时,该组现在被删除(耶!),但文件大小是相同的(嘘!)。在这种情况下,我的文件大小一开始是 1.2Gb,我删除了包含大约 95% 数据的组(我只保留了大约 20 个“字段”中的 1 个)。

我错过了什么吗?一个组是否只是元数据,而底层数组数据仍然存在?如何浏览并制作一个较小的文件,仅包含我需要的信息?

任何提示将非常感谢。

0 投票
2 回答
9068 浏览

pandas - 将 Pytables 表转换为 pandas DataFrame

很多关于如何将 csv 读入 pandas 数据框的信息,但我拥有的是一个 pyTable 表并想要一个 pandas 数据框。

我已经找到了如何将我的 pandas DataFrame 存储pytables ......然后读我想读回它,此时它将具有:

我可以把它写成 csv 并重新读入,但这似乎很愚蠢。这就是我现在正在做的事情。

我应该如何将 pytable 对象读入熊猫?

0 投票
1 回答
314 浏览

pytables - 嵌套的 pytables

假设您将字典传递给 pytable 构造函数:

h5f.createTable('/','table',{'col1':Float64Col(pos=0),'col2':StringCol(16,pos=1)})

我有以下三个与嵌套 pytables 相关的初学者问题:

1)如何使用字典描述符来创建嵌套的 pytable?2)如何为嵌套列分配位置?如果顶级列的位置为 pos=1,您是否从 0 开始对其子列进行编号?3)如何将行分配给嵌套列?

感谢您的帮助!

0 投票
2 回答
9498 浏览

hdf5 - `pip install tables` 失败并出现错误:: 找不到本地 HDF5 安装

这是我尝试在 Mac OSX 上安装 PyTables 时收到的详细错误消息。

我的 hdf5-18 库是通过 macports 安装的。他们可以在这里找到 -

如何让我pip install tables知道在哪里寻找我的 hdf5 安装?