【发布时间】:2014-07-29 21:00:33
【问题描述】:
我正在尝试将一个数组作为输入,并期望一个数组作为以下代码的输出。
from sympy import symbols
from sympy.utilities.lambdify import lambdify
import os
from sympy import *
import numpy as np
text=open('expr.txt','r')
expr=text.read()
x,param1,param2=symbols('x param1 param2')
params=np.array([param1,param2])
T=lambdify((x,params),expr,modules='numpy')
data=np.genfromtxt('datafile.csv',delimiter=',')
print T(data[0],[0.29,4.5])
text.close()
但是得到以下错误。
TypeError: <lambda>() takes exactly 3 arguments (13 given)
我如何告诉 sympy 它是一个数组?提前致谢。
【问题讨论】:
-
你想做什么?我在您的代码中看到了很多错误。变量 expr 只是一个字符串而不是表达式。
-
它是一个在文件中包含 x、param1 和 param2 的数学表达式。在给定 param1 和 param2 的情况下,我正在尝试以不同的 x 值对其进行评估
-
表达式看起来如何?
-
2*param1/param2*(x**(param2-1)-x**(-1-param2/2))
-
你能发布数据[0]中的内容吗?