我想在网格网格上评估一个符号表达式。我的测试代码如下:
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试图创建一个具有许多维度的对象,这完全不是我想到的。有没有办法在没有函数参数循环的情况下执行此操作?
最佳
答案 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)