Es scheint, dass die subs-Methode nutzlos ist und dass Sie eine Funktion namens sympy.lambdify verwenden müssen.
subs_vs_lambdify.py
# coding:utf-8
import numpy as np
import sympy as sp
#Erstellen Sie Sympy-Variablen
x = sp.Symbol('x')
y = sp.Symbol('y')
#Machen Sie ein Array von Numpy
arrX = np.arange(12, dtype='float64').reshape((3, 4))
arrY = np.ones((3, 4))
#Erstellen Sie eine Sympy-Funktion
symbolFunc = 2*x + y
#Weisen Sie der subs-Methode ein Array zu
resSubs = symbolFunc.subs([(x, arrX), (y, arrY)])
print(resSubs)
# ==> 2*x + y
#Es scheint, dass das Array nicht berechnet werden kann
#Versuchen Sie, mit Lambdify zu berechnen
#Erstellen Sie zunächst eine Funktion
lambdifyFunc = sp.lambdify([x, y], symbolFunc)
#Übergeben Sie ein Array als Argument der erstellten Funktion
resLambdify = lambdifyFunc(arrX, arrY)
print(resLambdify)
# ==> [[ 1. 3. 5. 7.]
# [ 9. 11. 13. 15.]
# [17. 19. 21. 23.]]
#Dieser berechnet
Recommended Posts