2017-07-20 25 views
1

大きな配列を必要とする関数には問題があります。同じ問題を複製する単純化されたコードは次のとおりです。Sympy:大規模な配列入力を伴うLambdify関数

次のエラーを与える
from sympy import * 
def fun(x): 
    f = [] 
    for i,x_i in enumerate(x): 
     f.append(x_i**i) 
    return Matrix(f) 
N = 256 
x = Matrix([symbols("x_%s"%i) for i in range(N)]) 
fun_lam = lambdify((x,),fun(x)) 

Traceback (most recent call last): 
    File "bin/problem-lambdify.py", line 13, in <module> 
    fun_lam = lambdify((x,),fun(x)) 
    File ".../env/lib/python3.4/site-packages/sympy-1.1rc1-py3.4.egg/sympy/utilities/lambdify.py", line 434, in lambdify 
    func = eval(lstr, namespace) 
    File "<string>", line 1 
SyntaxError: more than 255 arguments 

私はいくつかの点でsympyは引数を平坦化し、したがって、この問題が発生したとします。

私はそれの周りに良い方法を考えることができません。

答えて

0

明らかにPython 3.7(2018年にリリース予定)は、removingこの制限になります。私はこれが今あなたを助けてくれるのではないことを知っています(あなたがPythonの開発ビルドを実行しない限り)が、少なくとも将来の希望はあります。

関連する問題