问题标签 [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.
python - numpy 和 pytables 问题(错误:元组索引超出范围)
我是 python 和 pytables 的新手。目前我正在写一个关于聚类和 KNN 算法的项目。这就是我所拥有的。
** * ** * ** ** 代码 * ** * ** * ** * ** * **** _
step0:获取集群
step1:将结果保存到名为 clst_fn.h5 的 HDF5 文件中
step2:其他功能
废话
step3:从 clst_fn 加载集群
#step4:唤起另一个函数(称为knn)。函数输入参数是来自 pnts 的数据。我已经单独检查了 knn 功能。如果输入为 pnts = npr.rand(100,128),此函数运行良好
#使用 clst_fn 中的集群调用 knn(参见步骤 3)
** * ** * ** ** 代码 结束* ** * ** * ** * ** * ****
我现在的问题是python通过显示给我带来了困难:错误:IndexError:元组索引超出范围此错误来自“D = ctypes.c_uint(pnts.shape [1])”这一行。
显然,输入参数一定有问题。有没有想过解决这个问题?先感谢您。
python - 如何为 Pytables EArray 创建定义 atom
尝试基于 numpy recarray 中的一列在运行时创建 Pytables EArray。如果我使用 createArray,这似乎可行,因为我可以简单地将从 recarray 中提取的 numpy 数组传递给它。但是,对于 createEArray 我需要定义原子 - 这会导致问题
在示例中,MyRecArray 是一个记录数组,其中包含一维列数组,Myhdf5 是一个预定义的 Pytables 文件,而 Mynode 是该文件中的一个预定义组,EArray 将挂起该组。
使用此代码给出错误:
我可能可以使用基于数组时间的 case 语句编写一个子例程并传回一个原子,但我只是想知道是否有一种通用方法可以通过将要创建的数组类型传递给它来创建这样一个原子,而不必调用针对不同数据类型的特定函数,例如“tables.atom.FloatAtom(....)”
谢谢
java - PyTables 和 numexpr 的 Scala 或 Java 类似物
我正在寻找 numexpr 和 PyTables 的 Scala 或 Java 类似物(尤其是 tables.Expr)。这适用于需要对内存不足的数据执行矩阵运算的多核机器上的多核分析系统。特别是这些库应该优化磁盘、内存、缓存和 CPU 之间的数据移动。应该有效地处理稀疏矩阵。有关图书馆应解决哪些问题的更多背景信息,请参阅http://www.youtube.com/watch?v=J3-oN_TulTg和https://www.google.com/search?q=alted 的热门搜索+cpu+饥饿。
虽然这个问题表面上与Scala 等同于 pyTables? 该问题没有指定 pytables 的哪些方面很重要,并且那里的答案不适合我的问题。
处理缓存感知和缓存遗忘算法的 OTOH 库可能会有所帮助。
我想“Scala Virtualized”(又名语言虚拟化)和 Stanford-PPL Delite 框架可以作为在 Scala 中构建我所需要的东西的良好基础,如果我正在寻找的东西还不存在的话。
Hadoop、MapReduce、图形数据库和大多数流行的 nosql 存储都不是我想要的。虽然我正在寻找的是技术上的一种 nosql 存储。
python - 使用多处理在 Python 中读取多个 HDF5 文件
PyTables
我正在尝试使用and读取一堆 HDF5 文件(“一堆”表示 N > 1000 个文件)multiprocessing
。基本上,我创建了一个类来读取我的数据并将其存储在 RAM 中;它在顺序模式下工作得非常好,我想并行化它以获得一些性能。
我现在尝试了一种虚拟方法,flatten()
为我的类创建一个新方法来并行文件读取。以下示例是我正在尝试做的简化示例。listf
是包含要读取的文件名称的字符串列表,nx
并且ny
是我要在文件中读取的数组的大小:
我尝试了不同的方法(包括,就像我在这个简单示例中所做的那样,使用 amanager
来检索数据),但我总是得到一个TypeError: an integer is required
.
我不使用 ctypes 数组,因为我真的不需要共享数组(我只想检索我的数据),并且在检索数据后,我想用 NumPy 来玩它。
任何想法、提示或帮助将不胜感激!
编辑:我得到的完整错误如下:
python - 让 HDF5 与 pyTables 一起工作的问题
我一直在努力尝试在 OSX 10.8 上设置 pyTables。我正在运行 Enthought python 发行版,使用 PIP 安装了 pyTables 和 numexpr,并使用 Homebrew 安装了 HDF5 包。
但是,当我尝试在 python 中导入表时,出现以下错误:
我试过玩弄我的路径变量,因为我认为可能是自制目录被覆盖了或其他东西,但情况似乎并非如此。关于发生了什么的任何想法?
python - 使用 SQL 查询填充 pytable
我想在 Python 中使用等效的数据集。我想用 psycopg2 的数据填充数据集,cursor.fetchall()
然后从这个数据集中进行所有未来的查询。
我了解到 pytables 可以以类似的方式使用。cursor.fetchall()
我的问题是如何使用没有逐行循环的输出来填充 pytable 对象?另外如何在 pytables 中执行类似 SQL 的查询?
python - 使用 PyTables 对 HDF5 进行嵌套迭代
我有一个相当大的数据集,我存储在 HDF5 中并使用 PyTables 访问。我需要在这个数据集上做的一个操作是每个元素之间的成对比较。这需要 2 个循环,一个循环遍历每个元素,一个内部循环遍历所有其他元素。因此,该操作着眼于 N(N-1)/2 次比较。
对于相当小的集合,我发现将内容转储到多维 numpy 数组中然后进行迭代会更快。由于内存问题,我遇到了大型集合的问题,并且需要在运行时访问数据集的每个元素。
将元素放入数组中,我每秒可以进行大约 600 次比较,而对 hdf5 数据本身进行操作,每秒可以进行大约 300 次比较。
有没有办法加快这个过程?
示例如下(这不是我的真实代码,只是一个示例):
小套装:
大套装:
python - PyTables/HDF5 KERNEL32.dll 错误
我最近使用 Python 2.7.2 在 Windows XP 上安装了 HDF5 1.8.9 和 PyTables 2.4.0,并从 PyPI(如果可用)或http://www.lfd.uci.edu/~gohlke/pythonlibs的二进制文件中安装了以下内容/(没有时)
- Numpy 1.6.1 超级包
- 数字表达式 1.4.2
- 赛通 0.17.3
- scipy 0.10.0rc1 超级包
- matplotlib 1.1.1
当我导入表时,模块会导入,但会产生以下错误
"The procedure Entry point InitOnceExecuteOnce could not be located in the dynamic link library KERNEL32.dll."
MSDN.com 称此功能仅适用于 Windows Vista 及更高版本。我知道最新的 HDF5 二进制文件 (2.8.10) 是在 Windows 7 中构建的,根据 hdfgroup.org,让它们在 Windows XP 中工作需要从源代码构建它们,但 2.8.9 版本的二进制文件应该适用于经验值。此外,所有 PyTables 的依赖项都可以毫无问题地导入,因此问题似乎出在 HDF5 库上。如何在不从源代码构建 HDF5 库的情况下解决此问题?
full-text-search - 用于日志搜索的基于文本的数据库?
我正在我的公司处理大量多维日志数据。我必须非常快速地从我的文本数据库中保存和检索数据,因为有大量数据,如果我构建一个搜索查询(它们不是那么简单的查询,即在某些日期之间等),它需要一个有效的时间。
以下是我的观点:
我们使用Lucene,但它不符合要求。
我们不使用基于 SQL 的数据库,因为在这种情况下存储大量日志数据和查询是多余的。
由于我们的需要,我们不想使用NoSQL 数据库进行日志搜索。我们需要一个基于文本的数据库。
我们想使用Pytables但是我的问题是我想知道是否存在任何其他系统可以在日志上快速存储和搜索?