【问题标题】:Python - write symbolic expression (sympy) to txt filePython - 将符号表达式(sympy)写入txt文件
【发布时间】:2013-07-08 00:16:28
【问题描述】:

将符号表达式写入 txt 文件的最佳方法是什么(以便我可以在读取 txt 文件后使用符号表达式)?

例如,是否有 numpy 的 savetxt() 函数的 sympy 等价物?

例如:

from sympy import Symbol
a=Symbol('a')
b=Symbol('b')

y=a+3*b

我怎样才能正确地写和读 y?

【问题讨论】:

    标签: python save expression sympy


    【解决方案1】:

    str(expr) 在 SymPy 中应该保存大部分关于你的表达式的信息。优点是它是人类可读的。从中加载的最佳方法是使用sympify(),而不是仅仅复制粘贴或eval,因为例如,str(Rational(1, 2)) 将给出1/2,其将直接评估为0.5

    还有一个函数srepr()(SymPy 的repr 版本)可以提供更详细的输出。

    需要注意的一点是,目前两者都没有保存有关符号假设的信息 (Symbol('x', real=True)),因此如果需要,您应该使用 pickle 或 dill 之类的东西。

    【讨论】:

    • srepr 确实存储假设(至少现在)...
    【解决方案2】:

    您可以使用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)
    

    【讨论】:

    • 请注意,pickle 会阻塞许多 SymPy 表达式。 dill 做得更好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-25
    • 2013-07-06
    • 2014-05-02
    • 2018-06-04
    • 2018-01-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多