0
例えば、私は値a
を持っています。Sympyの物理量の浮動小数点値を取得する方法は?
import sympy.physics.units as u
a = 133.05*u.kg/u.m
私はfloat型の値に、この物理量を変換したい、と私は知っている唯一の方法は、float(a/(u.kg/u.m))
です。
例えば、私は値a
を持っています。Sympyの物理量の浮動小数点値を取得する方法は?
import sympy.physics.units as u
a = 133.05*u.kg/u.m
私はfloat型の値に、この物理量を変換したい、と私は知っている唯一の方法は、float(a/(u.kg/u.m))
です。
必要な情報を得るにはa.args
を使用できます。最初に数値を含むタプルを返し、次に単位を返します。例:
import sympy.physics.units as u
a = 133.05*u.kg/u.m
print(a.args[0])
print(type(float(a.args[0])))
もし、その単位なしで値を取得したいのであれば、その文字列を分割することができます。それは私が考えることができる簡単な方法です。
In [1]: import sympy.physics.units as u
a = 133.05*(u.kg/u.m)
new_a = float(str(a).split('*')[0])
print(new_a)
Out[1]: 133.05
あなたは正しいです!奇妙なことはここで起こると思う...たとえば、私は最初に質問に答えた、私の答えは正しいと動作します。実際は同じです。なぜそれが良いのかを説明するコメントがありがたいです:) – manelfp
まあ、アプローチはかなり違っています:文字列に変換し、文字列演算を行うか、sympyの組み込み関数を使用します。そこでOPは彼がどのアプローチを最も好きで、おそらく彼のニーズをより良く解決するかを決めました。彼はたくさんの変数に取り組んでいるかもしれませんし、この方法がより速いことがわかりました。あるいは、別の文字列操作に頼らなくても、単位を簡単に取得できるという追加の利点があります。 – Hannebambel
偉大な仕事!ありがとうございました! – manelfp