问题标签 [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 回答
1697 浏览

python - 使用 pytables 选择列子集的最优雅的方法是什么?

我在 pytables 中有一个包含 300 多列的数据集,我希望能够轻松选择不同的子集。似乎没有一个非常优雅的解决方案,或者我缺少什么?

我也很高兴有一种方法可以创建另一个表,该表只是将原始表中的选择列别名化,这样我就可以拥有我的主表,然后是我的子表。有没有办法做到这一点?

0 投票
2 回答
5899 浏览

python - PyTables 与 SQLite3 的插入速度

我买了 Kibot 的股票数据,它是巨大的。我有大约 125,000,000 行要加载(1000 只股票 * 125k 行/股票 [自 2010 年 1 月 1 日以来的 1 分钟柱形数据],CSV 文件中的每只股票,其字段为日期、时间、开盘、高、低、收盘,体积)。我对 python 完全陌生(我选择它是因为它是免费的并且受到社区的良好支持),我选择 SQLite 来存储数据是因为 python 对它的内置支持。(而且我非常了解 SQL 语言。SQLiteStudio 是一个免费程序的瑰宝。)

我的加载程序运行良好,但速度越来越慢。SQLite db 大约 6 Gb,并且只加载了一半。我使用 INSERT 语句加载大约 500k 行/小时,并在每只股票(大约 125k 行)之后提交事务。

那么问题来了:PyTables 是否比 SQLite 快得多,努力学习如何使用它值得吗?(而且由于我处于学习模式,请随意提出这两个的替代方案。)PyTables 困扰我的一件事是它真的很简单,几乎就像保存一个二进制文件一样,用于免费版本。没有“where 子句”函数或索引,因此您最终会扫描所需的行。

加载数据后,我将使用基于 NumPy 的东西进行统计分析(滚动回归和相关等):Timeseries、larry、pandas 或 scikit。我还没有选择分析包,所以如果您有建议,并且该建议最好与 PyTables 或 pandas(或其他)一起使用,请在您的回复中考虑到这一点。

(对于@John)Python 2.6;
Windows XP SP3 32 位;
用作 INSERT 语句的制造字符串;
2G 物理内存的 750M 内存使用率坚如磐石;
CPU 使用率为 10% +/- 5%;
完全 i/o 绑定(磁盘总是在嘎吱作响)。
数据库架构:

0 投票
2 回答
2219 浏览

python - 将大量数据附加到 database.numcols != newdata.numcols 的表 (HDF5) 数据库中?

我正在尝试将大型数据集(>30Gb)附加到现有的 pytables 表中。表为 N 列,数据集为 N-1 列;在我知道其他 N-1 列之后计算一列。

在将数据集附加到数据库之前,我正在使用numpy.fromfile()将数据集的块读入内存。理想情况下,我想将数据粘贴到数据库中,然后计算最后一列,最后通过 usingTable.modifyColumn()完成操作。

我考虑过追加numpy.zeros((len(new_data), N))到表中,然后使用Table.modifyColumns()来填充新数据,但我希望有人知道一种很好的方法来避免为我需要追加的每个块生成大量空数据。

0 投票
1 回答
2047 浏览

python - Numpy 和 PyTables 的浮点异常

我有一个由 PyTables 生成的相当大的 HDF5 文件,我试图在集群上读取它。当我阅读单个块时,我遇到了 NumPy 的问题。让我们来看这个例子:

HDF5 文件中数组的总形状是,

此数组中的每个条目都是一个np.float64.

我让每个节点读取 size 的切片(21933063,10,3)。不幸的是,NumPy 似乎无法一次读取所有 2100 万个子切片。我试图通过将这些切片分成 10 个大小的切片按顺序执行此操作(2193306,10,3),然后使用以下 reduce 使事情正常工作:

哪里1 <= k <= 10chunksize = 2193306。此代码适用于k <= 9;否则我会得到以下信息:

我尝试使用 Valgrind 的memcheck工具来弄清楚发生了什么,似乎 PyTables 是罪魁祸首。跟踪中显示的两个主要文件是libhdf5.so.6一个与blosc.

另外,请注意,如果我有k=8,我会得到:

但是如果我附加最后一个子切片,我会得到:

有没有人知道该怎么做?谢谢!

0 投票
1 回答
1411 浏览

python - 使用 psycopg 插入的问题

我正在使用 Pytables 模块从 .mat 文件中读取数据。读取数据后,我想使用 psycopg 将此数据插入数据库。这是一个示例代码片段:

我收到以下错误:

如果有人可以为此提出解决方法,那就太好了。谢谢!

0 投票
1 回答
2242 浏览

python - HDF5 文件和 PyTables 文件的区别

HDF5文件和创建的文件有区别PyTables吗?

PyTables有两个功能.isHDFfile().isPyTablesFile()提示两种格式有区别。

我在 Google 上做了一些环顾四周,并收集到 PyTables 是建立在 HDF 之上的,但除此之外我找不到更多。

我对互操作性、速度和开销特别感兴趣。

谢谢。

0 投票
2 回答
275 浏览

scala - Scala 相当于 pyTables?

我正在寻找与pyTables提供的类似的 Scala 帮助。PyTables 是一个用于管理分层数据集的包,旨在高效、轻松地处理大量数据。

有什么建议么?

0 投票
2 回答
1168 浏览

python - 在 mac os lion 上构建 pytables

我正在尝试在 mac lion 上构建 pytables 2.3.1,但我遇到了这个错误:

tsf-wpa-3-6133:tables-2.3.1 Hesa​​m$ python setup.py build * 发现安装了 numpy 1.5.1 包。* 发现安装了 numexpr 1.4.2 包。* 发现安装了 Cython 0.15.1 包。.. 错误:: 找不到本地 HDF5 安装。您可能需要通过设置 HDF5_DIR环境变量或使用--hdf5 命令行选项明确说明可以在何处找到本地 HDF5 头文件和库。

你知道解决办法是什么吗?

谢谢。

0 投票
1 回答
2291 浏览

python - 在 python 中导入表时出错

我已经在 windows 32bits 下安装了 python 2.6、numpy 1.6.1、tables 2.3.1 y numexpr 2.0。但是导入表给了我这个错误:

0 投票
2 回答
9132 浏览

python - 使用 pytables 构建一个巨大的 numpy 数组

如何使用 pytables 创建一个巨大的 numpy 数组。我试过这个,但给了我“ValueError:数组太大”。错误: