gpt4 book ai didi

python - 是否可以对 numexpr 中的多个轴求和?

转载 作者:行者123 更新时间:2023-12-02 10:50:33 25 4
gpt4 key购买 nike

我正在尝试执行以下操作:

import numexpr as ne

a = np.random.rand(10, 1)
b = np.random.rand(1, 10)
ne.NumExpr('sum(sum(a*b, 1), 0)').run(a, b) # <- error: reduction operations must occur last
ne.NumExpr('sum(a*b, [1, 0])').run(a, b) # <- error: ValueError: cannot encode axis

返回时会显示此处记录的错误:

https://github.com/pydata/numexpr/wiki/Numexpr-Users-Guide#supported-reduction-operations

我想知道是否有我没有想到的解决方法。

编辑

回答一些评论:

这是一个比我感兴趣的实际示例更简单的示例。这里有一个更完整的示例:

How to sum of squares of sum with memory limitations?

这里:

How to do a sum of sums of the square of sum of sums?

我不希望您阅读这些问题。

我对 numexpr 实现感兴趣的主要原因是,与我见过的任何其他实现相比,它提供了对多线程的简单支持,并且归约运算符减少了对内存存储的需求,这有时会减少内存存储的需求。对我来说至关重要。

我希望这能澄清一些事情。

最佳答案

您可以使用 numexpr 对多个轴求和,如下所示:

import numpy as np
import numexpr as ne

a = np.random.rand(10, 1)
b = np.random.rand(1, 10)
ne.evaluate('sum(x, 0)', {'x': ne.evaluate('sum(a*b, 1)')})

关于python - 是否可以对 numexpr 中的多个轴求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27464955/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com