gpt4 book ai didi

python - 优化 Python 多项式计算

转载 作者:太空宇宙 更新时间:2023-11-04 01:35:40 24 4
gpt4 key购买 nike

我有一个函数可以计算多个变量的多项式项。输入是每个变量的幂列表。例如,对于两个变量和二阶,它看起来像这样,

def f(x,y):
return [1, x[1], y[1], x[1]*y[1], x[2], y[2]]

x = [2**0, 2**1, 2**2]
y = [3**0, 3**1, 3**2]

>>> f(x,y)
[1,2,3,6,4,9]

实际上函数是高阶的并且有很多变量所以平均有几千个术语(事实上,我在运行时用 eval 语句创建函数,但这并不重要)。该函数位于最内层循环中,目前是速度瓶颈。分析器告诉我,我大部分时间都花在 __times__ 上。

没有创建 C 扩展模块,任何人都可以看到任何优化空间吗?

编辑: 上面的例子试图评估 1 + x + y + xy + x^2 + y^2x = 2y = 3 ,除了不添加它们,只是将每个术语放在列表中。

添加它们很好(有一些系数 A、B、...),即我想要做的就是计算:

A + B*x + C*y + D*x*y + E*x^2 + F*y^2 .

最佳答案

我不确定来自哪个版本,但 numpy 应该有一个 polyval2d(x,y,c)功能进入polynomial模块,这将完全适用于您的示例。

您似乎有兴趣将示例扩展到更高的维度。

在同一个模块中有一个 polyval3d(x,y,z,c) ,如果这还不够,我建议(正如我猜你已经在做的那样)查看 source code .实现最适合您需求的东西应该不会太难,您可以随时在 SO 上询问 :)

关于python - 优化 Python 多项式计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10061264/

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