2016-08-24 5 views
0

Ich habe eine Liste, die ich versuche, für eine Variable zu lösen, aber funktioniert nicht, weil ich Inf in einigen der Elemente in der Liste habe. Wie kann ich mit dem inf in den Werten umgehen, damit ich nach meiner Variable m auflösen kann? Wenn ich den Code heißt es laufe „Can not 0 konvertieren zu int“ so ein Problem mit den inf-Werten in der Liste der A. der löst BefehlUmgang mit Inf in Liste

from sympy import * 
from numpy import inf 
m = var('m') 
A = [inf*m - 1, inf*m - 2, .1122*m - 7, 0.054*m - 8] 
m = [solve(eq,m) for eq in A] 

Antwort

0

hat es in der Regel keine gute Idee sympy und numpy zu mischen. Sympy verwendet oo für unendlich. Sie können .subs verwenden, um die inf mit oo zu ersetzen:

from sympy import * 
from numpy import inf 
m = var('m') 
A = [inf*m - 1, inf*m - 2, .1122*m - 7, 0.054*m - 8] 
sol = [solve(eq.subs(inf, oo), m) for eq in A] 

sol ist [[nan], [nan], [62.3885918003565], [148.148148148148]]

+0

Tatsächlich ist die A-Liste ist eine Ausgabe einer Funktion, die ich der Einfachheit halber nicht enthalten waren. Die Liste von A hat die inf, wie ich ursprünglich gepostet habe, gibt es eine Möglichkeit, wie ich Nan bekommen kann, wenn inf involviert ist? –

+0

Es ist immer eine gute Idee, einen Code einzufügen, der dem tatsächlichen Problem so nahe wie möglich kommt. Ich habe den Code geändert, um das "inf" für "oo" zu ersetzen, aber ich empfehle immer noch, das Problem am besten zu lösen, indem man "numpy" und "sympy" mischt (um die Funktion zu ändern, die diese Liste zurückgibt) Verwenden Sie 'oo' anstelle von' inf'). – chthonicdaemon