将符号表达式写入 txt 文件的最佳方法是什么(以便我可以在读取 txt 文件后使用符号表达式)?
例如,是否有 numpy 的 savetxt() 函数的 sympy 等价物?
例如:
from sympy import Symbol
a=Symbol('a')
b=Symbol('b')
y=a+3*b
我怎样才能正确地写和读 y?
将符号表达式写入 txt 文件的最佳方法是什么(以便我可以在读取 txt 文件后使用符号表达式)?
例如,是否有 numpy 的 savetxt() 函数的 sympy 等价物?
例如:
from sympy import Symbol
a=Symbol('a')
b=Symbol('b')
y=a+3*b
我怎样才能正确地写和读 y?
str(expr)
在 SymPy 中应该保存关于你的表达式的大部分信息。优点是它是人类可读的。从中加载的最佳方法是使用sympify()
,而不是仅仅复制粘贴或eval
,因为例如,str(Rational(1, 2))
将给出1/2
,它将0.5
直接评估为 。
还有一个函数srepr()
(SymPy 的版本repr
)可以提供更详细的输出。
需要注意的一件事是,目前两者都没有保存有关 Symbols 假设的信息 ( Symbol('x', real=True)
),因此如果需要,应该使用 pickle 或 dill 之类的东西。
您可以使用pickle库将其存储到文件中(因为您可以保存大多数 Python 对象):
import pickle
with open("y.txt", "w") as outf:
pickle.dump(y, outf)
你稍后会加载它
with open("y.txt") as inf:
y = pickle.load(inf)