PyTables:从表中选择行并应用 Numexpr



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

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

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

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

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

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

相关内容

  • 没有找到相关文章

最新更新