python 序列化函数_python – 如何序列化sympy lambdified函数?

你实际上可以用莳萝来腌制它.最新版本的dill(例如在github上)具有“设置”,允许变换如何在转储上构建pickle.是的,dill的默认设置在此对象上失败,但如果使用递归跟踪全局引用的设置(即recurse = True)则不会失败.此设置类似于默认情况下cloudpickle提供的内容.

>>> import sympy as sym

>>> import pickle

>>> import dill

>>> a, b = symbols("a, b")

>>> a, b = sym.symbols("a, b")

>>> expr = sym.sin(a) + sym.cos(b)

>>> lambdified_expr = sym.lambdify((a, b), expr, modules="numpy")

>>>

>>> dill.settings

{'recurse': False, 'byref': False, 'protocol': 2, 'fmode': 0}

>>> dill.settings['recurse'] = True

>>> dill.dumps(lambdified_expr)

'\x80\x02cdill.dill\n_create_function\nq\x00(cdill.dill\n_unmarshal\nq\x01U\x83c\x02\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00C \x00\x00s\x14\x00\x00\x00t\x00\x00|\x00\x00\x83\x01\x00t\x01\x00|\x01\x00\x83\x01\x00\x17S(\x01\x00\x00\x00N(\x02\x00\x00\x00t\x03\x00\x00\x00sint\x03\x00\x00\x00cos(\x02\x00\x00\x00t\x01\x00\x00\x00at\x01\x00\x00\x00b(\x00\x00\x00\x00(\x00\x00\x00\x00s\x08\x00\x00\x00t\x08\x00\x00\x00\x01\x00\x00\x00s\x00\x00\x00\x00q\x02\x85q\x03Rq\x04}q\x05(U\x03cosq\x06cnumpy.core.umath\ncos\nq\x07U\x03sinq\x08cnumpy.core.umath\nsin\nq\tuU\x08q\nNN}q\x0btq\x0cRq\r.'

附:我是莳萝作者,所以我知道.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值