0

是否可以从 PyTables 中的表中选择行并将类似 Numexpr 的表达式应用于输出?例如,如果我有桌子

import tables as tb

class Event(tb.IsDescription):
    x = tb.Float32Col()
    y = tb.Float32Col()
    z = tb.Float32Col()

我想要"x+y"where的数组"z > 10.0"

4

2 回答 2

1

是的,很有可能。PyTables 提供了这个Expr来做到这一点。它在幕后使用 numexpr。

于 2014-02-20T13:53:03.167 回答
0

我认为您正在尝试的内容与我试图在这里找到的内容密切相关。我认为将 numexpr 计算和内核内查询结合起来并不容易。一种可能性是在整个表上使用 numepxr 的 where 表达式,并将不满足条件的情况的结果设置为 0,或者在计算过程中不会发生的情况,然后使用带有条件的 where 查询过滤掉0 秒。

但是,如果您有高选择性标准(低命中数),这将产生巨大的开销。如果是这种情况并且数据适合内存,则可以在加载到内存中的数组上使用 Numexpr(使用内核内查询)。

于 2014-03-07T12:25:54.663 回答