n=input()
w=sym.symarray(' ', n)
w[0]=sym.exp(-x**2)
for i in range(1,n):
w[i]=sym.factor(sym.diff(w[i-1], x))
上面的行导致了一个符号性的症状列表,我可以访问和使用它,但我想把它变成一个数字函数数组,我已经尝试过lambdify但它没有用。 而
f=np.arange(0,n)
f[0]=sym.lambdify(x, w[0], modules='numpy')
工作正常,下面的循环没有:
f=np.arange(0,n)
for i in range(0,n):
f[i]=sym.lambdify(x, w[i], modules='numpy')
并返回以下错误:
Traceback (most recent call last):
File "/Users/Yuri/newwaves.py", line 16, in <module>
f[i]=sym.lambdify(x, w[i], np)
TypeError: int() argument must be a string, a bytes-like object or a number, not 'function'
答案 0 :(得分:1)
arange
返回一个带有dtype = int的numpy数组。要存储lambdified函数,需要使用dtype = object。您可以使用np.empty(n, dtype=object)
创建一个空数组。
或者,您可以使用Python list
,这可以更简单地使用,因为当您的dtype为object
时,您并没有真正获得numpy数组的任何优势。