问题标签 [numexpr]
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 总和而不分配不必要的数组
我有两个 numpy 布尔数组(a
和b
)。我需要找出它们中有多少元素是相等的。目前,我这样做len(a) - (a ^ b).sum()
了,但据我所知,xor 操作会创建一个全新的 numpy 数组。如何在不创建不必要的临时数组的情况下有效地实现这种期望的行为?
我试过使用 numexpr,但我不能让它正常工作。它不支持 True 为 1 而 False 为 0 的概念,所以我必须使用ne.evaluate("sum(where(a==b, 1, 0))")
,这大约需要两倍的时间。
编辑:我忘了提到其中一个数组实际上是另一个大小不同的数组的视图,两个数组都应该被认为是不可变的。两个数组都是二维的,大小往往在 25x40 左右。
是的,这是我程序的瓶颈,值得优化。
mergesort - 与 pytable 合并排序
我有两个带有 id 的大表(不适合内存),我想合并(加入)。
有没有办法用 pytables 快速做到这一点?我感谢对这两个表进行全索引并使用这种算法进行迭代:http ://en.literateprograms.org/Merge_sort_%28Python%29 。
但是有可能利用 numexp 库更快地做到这一点吗?
谢谢。
python - Pytables NumExpr ValueError:查询时输入太多条件
我在使用 where 方法传递具有 50 个条件的字符串查询 pytables 表时遇到此错误。这些条件基本上是 SQL IN 子句的翻译,即我想获取特定字段等于某个值列表的记录。
执行相同查询的另一种方法是什么?我的第一个想法是执行 50 次查询,每个值一次并合并结果。我希望也许有一个更优雅的解决方案。
可以传递给 numexpr 的条件数量是否存在已知限制?
python - PyTables / Numexpr 中的字符串比较
我刚刚创建并填写了我的第一个 PyTables 文件。试图查询数据,我遇到了一个问题。有一个ic_name
类型的列,StringCol(500)
我为此列创建了一个索引。以下代码工作正常:
之后的值count
比 200.000 多一点,这是正确的值。为了加快查询速度,我创建了索引并希望像这样查询:
现在我只得到 180 个结果!?任何暗示这里可能会发生什么?
python - 使用 numexpr 的欧几里得范数
我需要使用 numexpr 重写此代码,它正在计算矩阵数据 [rows x cols] 和向量 [1 x cols] 的欧几里得范数矩阵。
怎么做到呢?也许还有另一种更快的方法?
我使用 hdf5 的问题,以及从中读取的数据矩阵。例如,此代码给出错误:对象未对齐。
使用 numexpr: 似乎 numexpr 不理解 h5f.root.carray[i*rows:(i+1)*rows] 它必须重新分配?
python - 在 pytables CArray 中查找最大非无穷大元素
这一定很容易,但我对 pytables 很陌生。我的应用程序的数据集非常大,无法保存在内存中,因此我使用 PyTable CArrays。但是,我需要在非无穷大的数组中找到最大元素。在 numpy 中天真地我会这样做:
显然,如果不将整个数组引入内存,这在 PyTables 中是行不通的。我可以在适合内存的窗口中循环遍历 CArray,但如果没有最大/最小减少操作,我会感到惊讶。是否有一种优雅的机制来获取该数组的条件最大元素?
sympy - 如何在 sympy 中优化对 hessian 的评估?
我正在使用statsmodels
通用似然模型的库。由于我有一个相当复杂的似然函数,我曾经sympy
为我计算梯度和粗麻布。这很好用,但对我的需要来说太慢了,因为似然函数包含 term b0*x0 + b1*x1 + ... + bn*xn
。这样,粗麻布尺寸就会增加,N^2
复杂性也会增加。
expensive_operation * x0
hessian 的元素通常与和等非常相似expensive_operation * x1
。这意味着如果我可以预先计算expensive_operation
并在 hessian 的函数中使用它,我将大大提高性能。
所以问题是 - 有没有一种工具可以列出功能,优化它们,然后有效地评估它们?类似numexpr
which 会列出功能的东西?
python - 在 pytables 中结合 read_sorted 和 Expr 的最节省内存的方法是什么?
我正在寻找最节省内存的方法来组合读取 Pytables 表(列:x,y,z)以排序顺序(z 列具有 CSI)并评估类似的表达式
其中 a 和 b 是常数。到目前为止,我唯一的解决方案是使用“sortyby=z”标志复制整个表,然后在表上逐段计算表达式。
注意:我想将结果 x+a*y+b*z 保留在内存中,以便对其进行一些在 Pytables 中无法直接使用的归约操作,然后将其保存到新的 Pytables 表中。
python - PyTables:从表中选择行并应用 Numexpr
是否可以从 PyTables 中的表中选择行并将类似 Numexpr 的表达式应用于输出?例如,如果我有桌子
我想要"x+y"
where的数组"z > 10.0"
。
python - 无法使用 DataFrame.eval() 减去 datetime64
给定一个带有几个时间戳的 DataFrame:
如果我打电话eval()
,我会收到一个类型错误:
(顺便说一句,错误消息中的“未知”拼写错误。)
但我可以使用 Python 表示法:
timedelta
在 numexpr中分配 a 有问题吗?