是否可以从PyTables中的表中选择行并将类似Numexpr的表达式应用于输出?例如,如果我有表
import tables as tb
class Event(tb.IsDescription):
x = tb.Float32Col()
y = tb.Float32Col()
z = tb.Float32Col()
我希望"x+y"
数组"z > 10.0"
。
答案 0 :(得分:1)
是的,这是非常可能的。 PyTables提供了Expr
class来做到这一点。它在封面下使用了numexpr。
答案 1 :(得分:0)
我认为你所尝试的与我试图找出here的内容密切相关。我认为将numexpr计算和内核查询结合起来并不容易。可能的方法是在整个表上使用numepxr的where表达式,并将不满足条件的情况的结果设置为0,或者在计算过程中不会发生的情况,然后使用where条件筛选出的条件0
但是,如果您具有高选择性标准(低命中数),这将产生巨大的开销。如果是这种情况并且数据适合内存,则可以在加载到内存中的数组上使用Numexpr(使用内核内查询)。