数字の見積もりを見つけるために後で読むために、テキストファイルに保存したシンボリックな表現があります(大きすぎるため)。lambdify to py関数:シンボルの順序を一定に保つ方法
import sympy as sym
foo_fn = sym.lambdify(tuple(foo_sym.free_symbols), foo_sym)
は、式中の記号変数の一部が配列されているので、私のセットアップ機能のベクトル化バージョンをなど:私はそれらの式(foo_sym
発言を)読んだ後そう、私は次のようにPythonの関数にそれらの表現を変換します:上記のコードで
foo_num = foo_fn_vec(var_1, var_2, var_3, ...., var_12)
の順序:
import numpy as np
foo_fn_vec = np.vectorize(foo_fn)
は今、私は、次のようにベクトル化関数の数値推定値を見つけますvar_1, var_2, var_3, ...., var_12
の記号の値は、tuple(foo_sym.free_symbols)
の記号の順番と一致しています。しかし、私はtuple(foo_sym.free_symbols)
で与えられた記号変数の順序が変更されたように見えるので、私はPythonを再起動して上記のコードを実行するたびにValueError: math domain error
を取得しますが、foo_fn_vec(var_1, var_2, var_3, ...., var_12)
の値の順序は変更されていません。
両方のステップでシンボルの順序を一定に保つ方法、つまりsym.lambdify((var_1, var_2, var_3, ...., var_12), foo_sym)
の関数に変換するときに、関数の数値をfoo_num = foo_fn_vec(var_1, var_2, var_3, ...., var_12)
として見つけ出す方法はありますか?