在python中评估meshgrind上的符号表达式

时间:2017-03-31 12:20:45

标签: python eval sympy mesh

我想在网格网格上评估一个符号表达式。我的测试代码如下:

import sympy as sym
import numpy as np

x,y = sym.symbols('x,y')
test = sym.gamma(x)/sym.sqrt(y)

X = np.linspace( start = 1, stop = 2)
Y = np.linspace( start = 4, stop = 7)

X, Y = np.meshgrid(X, Y)

Z = test.evalf(subs = {x : X, y: Y})

似乎python试图创建一个具有许多维度的对象,这完全不是我想到的。有没有办法在没有函数参数循环的情况下执行此操作?

最佳

1 个答案:

答案 0 :(得分:0)

由于您对数值评估感兴趣,与numpy / scipy相比,使用sympy并不能提供任何优势,numpy / scipy的功能也可以通过一次调用应用于ndarray的所有元素。

from scipy.special import gamma
from numpy import sqrt

test = lambda x, y: gamma(x)/sqrt(y)

Z = text(X, Y)